Mardi 29 juil

Le bon code HTML pour insérer du Flash

HTMLIl faut dire qu'on est pas aidé, partout on nous propose d'inclure des vidéos ou des animations Flash avec du code erroné. À part quelques développeurs pointilleux, la plupart des gens copie-colle le code donné sans même savoir que la balise <embed> n'existe pas en HTML!

En plus le code correct est beaucoup plus simple et plus court. :-)

Voilà par exemple un code donné par Dailymotion:

<div><object width="420" height="357"><param name="movie" value="http://www.dailymotion.com/swf/xqhfz&related=1"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.dailymotion.com/swf/xqhfz&related=1" type="application/x-shockwave-flash" width="420" height="357" allowFullScreen="true" allowScriptAccess="always"></embed></object></div>

J'ai enlevé les liens de fin pour ne garder que la vidéo.

Voilà la même vidéo avec le code correct d'un point de vue HTML:

<div><object type="application/x-shockwave-flash" data="http://www.dailymotion.com/swf/xqhfz&related=1" width="420" height="357"><param name="movie" value="http://www.dailymotion.com/swf/xqhfz&related=1" /><param name="allowFullScreen" value="true" /></object></div>

Remarque 1: la ligne <param name="movie" ...> où on répète l'adresse est pour IE qui ne la trouve pas au bon endroit.

Remarque 2: le <param> pour l'accès par script, on s'en fout. Si vous ne savez pas à quoi ça sert, c'est que vous n'en avez pas besoin.

Remarque 3: on peut centrer la vidéo en mettant à la place du <div> initial <div style="text-align:center">. D'ailleurs ce <div> peut être remplacé par un banal <p>.

~

En résumé:

  1. je copie-colle le passage type="application/x-shockwave-flash" src="adresse" de <embed> vers <object> et je remplace src par data
  2. je supprime toute la balise <embed>
  3. je modifie les ...></param> en ... />

~

Le bon code pour un Flash doit être ceci, à garder précieusement: ;-)

<object type="application/x-shockwave-flash" data="ADRESSE" width="LARGEUR" height="HAUTEUR"><param name="movie" value="ADRESSE" /><param name="allowFullScreen" value="true" /></object>


On peut comprendre la démarche des sites de partages de vidéo (ou autres) car ce code s'adresse avant tout aux blogueurs, et malheureusement l'éditeur WYSIWYG de Wordpress abime ce code. Même si on insère le bon code en mode HTML, quand on repasse l'éditeur en mode visuel il le saccage.

Ma méthode consiste à faire les 3 étapes ci-dessus en mode HTML et à valider l'article sans repasser en mode visuel. Comme ça le code n'est pas modifié par l'éditeur visuel (TinyMCE).


Mini FAQ: À quoi ça sert d'avoir du code correct? Le code incorrect marche quand même!

Ça sert à respecter les règles de l'HTML. Comme quand on écrit en français. Si jécri kom sa on kompren kan m^, pourtan c pa bo! :-p

Et ça marche actuellement. Mais combien de temps les navigateurs vont-ils supporter ce code? À l'heure où des efforts sont faits pour respecter les standards (même IE 8 sera 100% correct parait-il), il faut que les créateurs de sites soient les premiers à montrer l'exemple. :-)

~

PS: Il y a une solution pour du Flash valide dans TinyMCE et Wordpress.


   blogasty

12 réponses à “Le bon code HTML pour insérer du Flash”

  1. 1
    No_Stress a dit:

    Bonjour,

    votre article est intressant mais partiellement faux!

    En effet la balise existe en html !!!!

    La balise HTML EMBED permet d'insérer, une vidéo ou du son ou du flash.

    La balise HTML EMBED est généralement associée avec la balise HTML
    Les attributs Html cités sont les attributs principaux de la balise HTML EMBED.
    Chaque plugin a ses propres attributs.
    Pour la balise HTML OBJECT, ces attributs seront mis dans la balise HTML PARAM dans l'attribut HTML NAME. Pour la balise HTML EMBED, ils seront insérés en temps qu'attributs.

  2. 2
    David a dit:

    Alors montrez la moi dans la liste des éléments...

    Ou montrez-moi une page avec la balise <embed> qui passe le validateur du W3C.

  3. 3
    No_Stress a dit:

    La balise n'a pas été reprise dans les spécifications officielles du HTML 4.0 (W3C) : elle est remplacée par la balise .

    http://developer.mozilla.org/fr/docs/HTML:Element

    Cdt,

  4. 4
    No_Stress a dit:

    Correction*
    ... est remplacée par la balise .

  5. 5
    No_Stress a dit:

    grr par la balise "object"
    dsl des posts pour rien :x

  6. 6
    Grucho a dit:

    Donc l'article n'est pas du tout faux, EMBED n'existe pas dans la dernière spécification d'HTML (celle que tout le monde devrait suivre) et il faut bien utiliser OBJECT... Where is the problem? No Stress!

  7. 7
    David a dit:

    En effet Grucho! :-) Le but est justement de se passer d'<embed> pour ne garder que <object>.

    Mais en fait, <embed> n'a jamais été dans les balises officielles. Même dans les plus anciennes version d'HTML.

    C'est une balise inventé par Netscape en son temps. Mais le W3C ne l'a jamais officialisée et il a préconisé <object> qui est beaucoup plus puissante (Flash, Java, son, image, page HTML externe...).

  8. Rétrolien de Flash avec du HTML valide dans TinyMCE et Wordpress - Azur Dev
  9. 8
    Pierre a dit:

    Merci beaucoup !

  10. 9
    Gwen a dit:

    merci super !

  11. 10
    Adil a dit:

    Pour insérer du flash dans une page je préfère utiliser le script swfobject : http://blog.deconcept.com/swfobject/
    Merci.

  12. 11
    David a dit:

    Dans l'article il s'agissait principalement de corriger le code donné par les sites de vidéo.

    Et puis quel intérêt? SWFObject alourdit la page et on perd le référencement des Flash par les moteurs. :-o

Laisser un commentaire

© 2009 Azur Dev Actualité informatique & tutoriels PHP Thème d'après Greenline + PHP HTML

ThemeWordpress
Azur Dev



I follow