So geben Sie Flash-Seiten über Überprüfungsmethoden in Website-Standards frei

So geben Sie Flash-Seiten über Überprüfungsmethoden in Website-Standards frei
1. Embed ist illegal
Das <embed>-Tag ist ein privates Tag von Netscape. Obwohl das <embed>-Tag weit verbreitet ist, wurde es von HTML3.2, HTML4.0 bis XHTML1.0 nicht in das W3C aufgenommen. Seiten, die das Tag <embed> verwenden, bestehen die W3C-Validierung nicht.

2. Objekt sollte verwendet werden
W3C empfiehlt das <object>-Tag. Auch in XHTML2 wird <img> durch <object> ersetzt. Der Code zum Einfügen des Flashs mit der Methode <object> lautet:

<Objekttyp="Anwendung/x-shockwave-flash" Daten="test.swf" Breite="200" Höhe="100"> <Parametername="Film" Wert="test.swf /> </Objekt>
Allerdings kann diese Methode auf IE5-IE6/Win nicht korrekt angezeigt werden (sie kann nicht kontinuierlich abgespielt werden und muss vor der Wiedergabe heruntergeladen werden), auf niedrigeren Versionen kann sie jedoch korrekt angezeigt werden. Später wurde das Problem der kontinuierlichen Wiedergabe dadurch gelöst, dass zunächst eine kleine Flash-Datei aufgerufen und dann eine große Flash-Datei eingebettet wurde. In Versionen über IE5 kann das Flash jedoch manchmal immer noch nicht angezeigt werden.

3. Aktuelle vorübergehende Maßnahmen
Was müssen wir also tun, um die Standards einzuhalten und Flash in allen Browsern korrekt anzuzeigen? Wie hat die Macromedia-Website die W3C-Validierung bestanden?

Einige Designer dachten darüber nach, JavaScript zu verwenden, um das unzulässige <embed>-Tag zu verbergen.

<script type="text/javascript"> wenn (navegiator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"] { document.write(''<embed src="test.swf" ...
Dies ist aktuell die bessere Lösung. Wenn Sie Flash einfügen müssen, rufen Sie es mit js auf. Mit dieser Methode können Sie das W3C-Validierungsprogramm täuschen und dafür sorgen, dass die Seite die Validierung besteht. Aber das ist bloß „Betrug“ und entspricht nicht wirklich den Standards.

Wie macht Macromedia das? Sehen Sie sich diesen Code an:

<!-- $RCSfile: FlashDetection2k.pm,v $ $Revision: 1.68 $ : Der Accept-Header Ihres Browsers zeigt an, dass Sie Flash 6,0,65,0 oder höher haben. Dieser Flash 6-Film ist also für Sie in Ordnung, hier kommt er. -->
Es wird ein Kompromissansatz verfolgt:

(1). Zunächst wird JavaScript verwendet, um die Version Ihres Browsers und Flash Players zu ermitteln.
(2) Generieren Sie im Hintergrund dynamisch HTML-Code entsprechend der verschiedenen Versionen.
Einfach ausgedrückt wird standardmäßig die Methode <object> verwendet. Wenn der Browser den MIME-Typ des Objekts „application/x-shockwave-flash“ nicht verarbeiten kann, fügt er das untergeordnete Element <embed> ein. Ehrlich gesagt ähnelt dies der Verwendung von js zum Verbergen der <embed>-Methode, was ebenfalls eine „Schummelmethode“ ist, es handelt sich jedoch um den standardmäßigsten und perfektesten Ansatz, der derzeit möglich ist.

Wenn wir <embed> wirklich aufgeben wollen, können wir nur warten, bis der IE-Browser <object> besser unterstützt, vielleicht bis Longhorn herauskommt.

<<:  MySQL Series II-Konfiguration für mehrere Instanzen

>>:  Einführung in die Rolle des HTML-Doctypes

Artikel empfehlen

Implementierung von webpack-dev-server zum Erstellen eines lokalen Servers

Inhaltsverzeichnis Vorwort Webpack-Deb-Server Sta...

Grafisches Tutorial zur MySQL 5.7-Konfiguration ohne Installation

Mysql ist eine beliebte und einfach zu bedienende...

Einige Tipps zur Verwendung von Less in Vue-Projekten

Inhaltsverzeichnis Vorwort 1. Stildurchdringung 1...

So erhalten Sie die Schnittmenge/Differenz/Vereinigung zweier Mengen in MySQL

Typische MySQL-Szenarien: Schnittmenge und Differ...

Einführung mehrerer benutzerdefinierter Schriftarten in CSS3

Heute habe ich ein Problem in HTML gefunden. Es s...

Eine kurze Diskussion zum Problem des Docker-Run-Containers im erstellten Status

Bei einem aktuellen Problem gibt es folgendes Phä...

Häufige Fehler bei der Verwendung von React Hooks

React Hooks ist eine neue Funktion, die in React ...

Teilen Sie die Fallstricke von MySQLs current_timestamp und ihre Lösungen

Inhaltsverzeichnis MySQLs current_timestamp-Falle...

CentOS 7: Erläuterung zum Wechseln des Boot-Kernels und des Boot-Modus

Centos7-Switch-Boot-Kernel Hinweis: Bei Bedarf wi...