1. Einbettung ist illegal
Das <embed>-Tag ist ein privates Tag von Netscape. Obwohl das <embed>-Tag von HTML3.2, HTML4.0 bis XHTML1.0 weit verbreitet ist, hat W3C dieses Tag nicht integriert. Seiten, die das <embed>-Tag verwenden, bestehen die W3C-Validierung nicht.
2. Sie sollten ein Objekt verwenden
Das W3C empfiehlt das <object>-Tag. Auch in XHTML2 wird <img> durch <object> ersetzt. Der Code zum Einfügen von Flash mithilfe der <object>-Methode lautet:
Nachfolgend der zitierte Inhalt: <object type="application/x-shockwave-flash" data="test.swf" width="200" height="100"> <parm name="movie" value="test.swf /> </object> |
Diese Methode kann jedoch auf IE5-IE6/Win nicht korrekt angezeigt werden (sie kann nicht kontinuierlich abgespielt werden und kann nicht abgespielt werden, bis sie heruntergeladen wird), kann jedoch auf niedrigeren Versionen korrekt angezeigt werden. Später löste die Methode, zuerst eine kleine Flash-Datei anzupassen und dann die große Flash-Datei einzubetten, das Problem der kontinuierlichen Wiedergabe. In IE5 und höher kann der Flash jedoch manchmal immer noch nicht angezeigt werden.
3. Aktuelle vorübergehende Maßnahmen
Was also tun, um nicht nur Standards einzuhalten, sondern Flash auch in allen Browsern korrekt anzuzeigen? Wie besteht die Macromedia-Website die W3c-Verifizierung?
Einige Designer dachten darüber nach, JavaScript zu verwenden, um illegale <embed>-Tags zu verbergen.
Nachfolgend der zitierte Inhalt: <script type="text/javascript "> if (navegiator . mimeTypes && navigator . mimeTypes["application/x-shockwave-flash"] { document . write('<embed src="test . swf" ... |
Dies ist derzeit eine bessere Lösung. Sie müssen Flash einfügen und es mit js aufrufen. Diese Methode kann das W3C-Verifizierungsprogramm täuschen und dazu führen, dass die Seite verifiziert wird. Aber es ist nur „Betrug“ und entspricht nicht wirklich den Standards.
Wie macht Macromedia das? Sehen Sie sich diesen Code an:
Nachfolgend der zitierte Inhalt: <!-- $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, Sie sind also für diesen Flash 6-Film geeignet, hier ist er kommt. --> |
Es verfolgt einen Kompromissansatz:
(1) Zunächst ermittelt Javascript Ihre Browser- und Flash-Player-Version;
(2). Generieren Sie dynamisch HTML-Code im Hintergrund entsprechend verschiedenen Versionen.
Vereinfacht ausgedrückt wird standardmäßig die Methode <object> verwendet. Wenn der Browser den MIME-Typ „application/x-shockwave-flash“ von object nicht verarbeiten kann, fügt er das untergeordnete Element <embed> ein. Um es ganz klar auszudrücken: Dies ähnelt der Verwendung von js zum Ausblenden von <embed>. Es handelt sich ebenfalls um eine „Betrugsmethode“, aber dies ist die standardmäßigste und perfekteste Methode, die derzeit durchgeführt werden kann.
Wenn Sie <embed> wirklich aufgeben möchten, können Sie nur darauf warten, dass der IE-Browser <object> besser unterstützt, vielleicht bis Longhorn herauskommt.