1.embed est illégal
La balise <embed> est une balise privée de Netscape Bien que la balise <embed> soit largement utilisée, de HTML3.2, HTML4.0 à XHTML1.0, le W3C n'a pas inclus cette balise. Les pages utilisant la balise <embed> ne passeront pas la validation W3C.
2. Vous devez utiliser un objet
Le W3C recommande la balise <object>. Même en XHTML2, <img> est remplacé par <object>. Le code pour insérer du flash à l'aide de la méthode <object> est :
<object type="application/x-shockwave-flash" data="test.swf" width="200" height="100"> <parm name="movie" value="test.swf /> </object>
Cependant, cette méthode ne peut pas être affichée correctement sur IE5-IE6/Win (elle ne peut pas être lue en continu et ne peut pas être lue tant qu'elle n'est pas téléchargée), mais elle peut être affichée correctement sur les versions inférieures. Plus tard, la méthode consistant à ajuster d'abord un petit fichier flash, puis à intégrer le gros fichier flash, a résolu le problème de la lecture continue. Cependant, dans IE5 et versions ultérieures, il arrive parfois que le flash ne puisse toujours pas être affiché.
3. Mesures temporaires actuelles
Alors que faire pour non seulement respecter les normes mais aussi afficher correctement le flash dans tous les navigateurs ? Comment le site Web Macromedia passe-t-il la vérification W3c ?
Certains concepteurs ont pensé à utiliser JavaScript pour masquer les balises <embed> illégales.
<script type="text/javascript "> if (navegiator . mimeTypes && navigator .
mimeTypes["application/x-shockwave-flash"] { document write('<embed src="test . swf" ...
C'est actuellement une meilleure solution. Vous devez insérer flash et utiliser js pour l'appeler. Cette méthode peut tromper le programme de vérification du W3C et faire en sorte que la page soit vérifiée avec succès. Mais c’est juste de la « triche », qui ne répond pas vraiment aux normes.
Comment fait Macromedia ? Voir ce code :
<!-- $RCSfile: FlashDetection2k.pm,v $ $Revision: 1.68 $ : l'en-tête d'acceptation de votre navigateur indique que vous disposez de Flash 6,0,65,0 ou supérieur, donc vous êtes OK pour ce film Flash 6, le voici vient. -->
Il adopte une approche de compromis :
(1). Premièrement, javascript détermine la version de votre navigateur et celle de Flash Player ;
(2). Générez dynamiquement du code HTML en arrière-plan selon différentes versions.
Pour faire simple, la méthode <object> est utilisée par défaut. Si le navigateur ne peut pas gérer le type MIME "application/x-shockwave-flash" de l'objet, il insère l'élément enfant <embed>. Pour le dire franchement, cela revient à utiliser js pour cacher <embed>. C'est aussi une méthode de "tricherie", mais c'est la méthode la plus standard et la plus parfaite qui puisse être utilisée à l'heure actuelle.
Si vous voulez vraiment abandonner <embed>, vous ne pouvez qu'attendre que le navigateur IE ait un meilleur support pour <object>, peut-être jusqu'à la sortie de Longhorn.