IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

HTML Discussion :

[XHTML] Balise <object> dans <noscript> et validation XHTML


Sujet :

HTML

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 92
    Par défaut [XHTML] Balise <object> dans <noscript> et validation XHTML
    Bonjour,

    Je suppose que cette question a déjà été posée mais je n'arrive à trouver de réponse précise.

    Lorsqu'on publie une animation avec Flash, il crée une balise <object> dans une balise <noscript> au cas où le javascript est désactivé sur le client.

    Le problème c'est que ce n'est pas valide en XHTML, la balise <object> n'est pas autorisée dans la balise <noscript>.

    Est-ce que certains auraient résolu ce problème ?

    Merci par avance,

    Benjamin.

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    3 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 009
    Par défaut
    "<object>" n'est pas du javascript. Tu n'a pas besoin de "<noscript>"

  3. #3
    Expert confirmé
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Par défaut
    Bonjour

    +1

    Pour un peu plus de précision : http://www.la-grange.net/w3c/html4.0...#edef-NOSCRIPT

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 92
    Par défaut
    Ok, mais quel est l'intérêt d'utiliser la fonction AC_FL_RunContent() et de gérer le flash en javascript au final ?

    Parce que là le flash était géré en javascript et la balise object n'était prise en compte que dans le cas où javascript était désactivé, d'où la balise <noscript>. Code généré automatiquement par flash lors de la publication de l'anim d'ailleurs.

    Merci pour vos réponses.

  5. #5
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    Parce que là le flash était géré en...
    où donc ? peux un peu détailler ?

  6. #6
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    3 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 009
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Flash XHTML valid</title>
    </head>
    <body>
    <object type="application/x-shockwave-flash" data="images/banner.swf" width="288" height="128">
    <param name="movie" value="images/banner.swf" />
    <img src="banner.gif" width="288" height="128" alt="banner" />
    </object>
    </body>
    </html>
    Un code qui fonctionne parfaitement et que ne nécessite aucun javascript.

    Je ne vois toujours pas pourquoi tu veux placer une balise <object> dans une balise <noscript> c'est tout simplement absurde et bien entendu ce n'est pas valide en XHTML

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Je pense plutôt que si son flash contient de l'action script, il ne sera pas intégré en cas de désactivation de js, donc Flash rajoute dans le noscript un fichier sans action script.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 92
    Par défaut
    Je m'explique mieux :

    Quand on publie une anim dans flash, il créer un fichier HTML qui contient du JS et du HTML dans le cas où javascript est désactivé sur le client, d'où la balise <noscript></noscript>.

    Le javascript est utilisé ici pour éviter les cadres pourris qui apparaissent sur IE sur les flash.

    Donc le javascript est nécessaire. Flash prévoit donc un code HTML avec balise <object> en plus du JS, inséré dans la balise <noscript> pour n'être pris en compte que si JS est désactivé.

    Exemple de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    <script type="text/javascript">
    <!--
    if (AC_FL_RunContent == 0) {
        alert("Cette page n&eacute;cessite le fichier AC_RunActiveContent.js.");
    } else {
        AC_FL_RunContent(
            'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0',
            'width', '898',
            'height', '155',
            'src', 'images/flash/bandeau',
            'quality', 'high',
            'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
            'align', 'middle',
            'play', 'true',
            'loop', 'true',
            'scale', 'showall',
            'wmode', 'transparent',
            'devicefont', 'false',
            'id', 'bandeau_v2',
            'bgcolor', '#ffffff',
            'name', 'bandeau',
            'menu', 'true',
            'allowFullScreen', 'false',
            'allowScriptAccess','sameDomain',
            'movie', 'images/flash/bandeau',
            'salign', ''
            ); //end AC code
    }
    // -->
    </script>
    <noscript>
        <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="900" height="155" id="bandeau" align="middle">
            <param name="allowScriptAccess" value="sameDomain" />
            <param name="allowFullScreen" value="false" />
            <param name="movie" value="images/flash/bandeau.swf" /><param name="quality" value="high" />
            <param name="wmode" value="transparent" />
            <param name="bgcolor" value="#ffffff" />
            <embed src="images/flash/bandeau.swf" quality="high" wmode="transparent" bgcolor="#ffffff" width="900" height="155" name="bandeau" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
        </object>
    </noscript>
    Donc je répète, il s'agit du code généré par Flash que j'essaie de rendre valide en XHTML. Si je vire le html et que je laisse le JS pas de pb, l'anim fonctionne sur tous les navigateurs.

    Mais si JS est désactivé, que faire ? existe-t-il seulement une solution valide en XHTML ?

    Merci pour vos réponses.

  9. #9
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    3 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 009
    Par défaut
    Je pense plutôt que si son flash contient de l'action script, il ne sera pas intégré en cas de désactivation de js, donc Flash rajoute dans le noscript un fichier sans action script.
    Même si son flash contient de l'action script, le javascript est inutile.

    Je me suis moi même mis à l'Action script et pour cela j'ai utilisé le logiciel d'Adobe qui me générais le même script que toi à quelques exceptions près. Et tout comme toi, il m'a rajouté le javascript et créé un <object> dans un <noscript>.

    La seule chose que j'ai fait pour valider en XHTML c'est d'enlever ce qui le gênait, c'est à dire que je n'ai gardé que le <object> et ses <param> et mon flash fonctionnait parfaitement même en lui passant une variable "test" dont je me servais dans l'action script

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <object type="application/x-shockwave-flash" data="monanimation.swf?test=bonjour" width="550" height="400">
    <param name="movie" value="monanimation.swf?test=bonjour" />
    </object>
    D'ailleurs si tu remarques bien le javascript généré, il s'agit en fait de toutes les options que tu peux régler avec la balise <param> de ton <object> ou directement dans ton <object>, je ne sais plus.

    En tout cas, ce javascript est inutile car tout ces réglage peuvent être fait en travaillant bien ton <object> et ses <param>. Le code javascript est juste là pour éviter de ce taper de longue ligne pour paramétrer le <object> et pour éviter de désagrément si tu en insère plusieurs.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 92
    Par défaut
    Tout ça n'a rien à voir avec l'action-script, il sera de toute façon exécuté, que ce soit dans du JS ou une balise <object>.

    La seule chose que j'ai fait pour valider en XHTML c'est d'enlever ce qui le gênait
    Je suppose que tu parles de la balise <noscript>. Si j'enlève cette dernière mon flash apparait 2 fois, une fois par le JS et une fois par la balise <object>.

    Perso, je veux bien virer le JS et me contenter de la balise <object>, mais qu'en est-t-il des problèmes de cadres qui apparaissent autour des anim dans IE ? Je pense que le JS est là surtout pour ça.

  11. #11
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Citation Envoyé par Delprog Voir le message
    il s'agit du code généré par Flash
    Flash n'a jamais prétendu générer du code valide.

    A ta place, je laisserai le Javascript où il est, la balise object (en reprenant le code de popo qui est valide et cross-browser) en dehors de la balise noscript.

    Résultat : Valide + OK sur Firefox et IE avec Javascript activé ; OK sur Firefox et il faudra juste cliquer deux fois sur IE pour activer le Flash avec Javascript désactivé.
    Si certains s'amusent à désactiver Javascript, ils auront juste à cliquer deux fois pour arriver à utiliser ton Flash, mais j'imagine que ces personnes là savent à quoi s'en tenir.

  12. #12
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    3 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 009
    Par défaut
    Je suppose que tu parles de la balise <noscript>. Si j'enlève cette dernière mon flash apparait 2 fois, une fois par le JS et une fois par la balise <object>.
    Je n'ai pas seulement enlevé la balise <noscript> j'ai également enlevé tout le javascript car tout ce que fait le javascript c'est paramétrer l'objet et cela peux être fait directement en (X)HTML

Discussions similaires

  1. Balise object invisible dans les mails
    Par gnappy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 04/11/2011, 13h38
  2. [XHTML] [Validation XHTML] Balise ul
    Par navis84 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 09/07/2008, 17h04
  3. [XHTML] Balise xhtml dans forum
    Par bm dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 22/05/2007, 16h58
  4. [XHTML] Balise OBJECT pour lire une vidéo...
    Par zoidy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 02/06/2006, 10h21
  5. [XHTML] Balise <noscript> qui s'active toujour
    Par ARRG dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 20/03/2005, 23h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo