Partage
  • Partager sur Facebook
  • Partager sur Twitter

Javascript et validateur XHTML

Sujet résolu
    8 août 2006 à 20:43:49

    Bonjour,

    Je suis en train de rédiger un site pour lequel il m'est nécessaire d'agrandir des miniatures de photos dans une fenêtre pop-up pour qu'elles soient plus facilement visualisées.

    Pour cela, j'ai utilisé une fonction javascript.

    Le code javascript utilisé est le suivant (je précise que c'est un code que l'on m'a donné sachant que je ne connais rien en javascript... vivement un bon gros tuto :p ). Bref, voici le code que j'insère dans une page XHTML:


    <!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.1//EN&quot; &quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&quot;>

    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >

       <head>

    <script language="JavaScript">

    <!--

    function resizePopUp(monImage, monTitre)

        {

            w = window.open('','chargement','width=10,height=10');

            w.document.write( &amp;quot;<html>
    <head><title>&amp;quot;+monTitre+&amp;quot;</title>\n&amp;quot; );

            w.document.write( &amp;quot;<script language='JavaScript'>\n&amp;quot;);

            w.document.write( &amp;quot;IE5=NN4=NN6=false;\n&amp;quot;);

            w.document.write( &amp;quot;if(document.all)IE5=true;\n&amp;quot;);

            w.document.write( &amp;quot;else if(document.getElementById)NN6=true;\n&amp;quot;);

            w.document.write( &amp;quot;else if(document.layers)NN4=true;\n&amp;quot;);

            w.document.write( &amp;quot;function autoSize() {\n&amp;quot;);

            w.document.write( &amp;quot;if(IE5) self.resizeTo(document.images[0].width+10,document.images[0].height+31);\n&amp;quot;);

            w.document.write( &amp;quot;else if(NN6) self.sizeToContent();\n&amp;quot;);

            w.document.write( &amp;quot;else window.resizeTo(document.images[0].width,document.images[0].height+20);\n&amp;quot;);

            w.document.write( &amp;quot;self.focus();\n&amp;quot;);

            w.document.write( &amp;quot;}\n</scri");

            w.document.write( "
    pt>
    \n&amp;quot;);

            w.document.write( &amp;quot;</head><body leftmargin=0 topmargin=0 marginwidth=0 marginheight=0 onLoad='javascript:autoSize();'>&amp;quot; );

            w.document.write( &amp;quot;<a href='javascript:window.close();'><img src='&amp;quot;+monImage+&amp;quot;' border=0 alt='&amp;quot;+monTitre+&amp;quot;'></a>&amp;quot; );

            w.document.write( &amp;quot;</body></html>&amp;quot; );

            w.document.close();

            }

    //-->

    </script>
    </head>




    Ce code doit être suivi du code suivant, à placer dans le corps de la page :


    <p>
    <a href="#images/vue01.jpg" alt="vue externe"><a href="#" onClick="resizePopUp('images/vue01.jpg','vue externe');"><img src="images/vignettes01.jpg" alt="vue externe" title="Cliquez sur l&amp;#039;image pour l&amp;#039;agrandir !"/></a></p>


    Ce code fonctionne mais il est loin d'être valide XHTML. :-°

    Quelqu'un saurait-il comment faire pour le rendre valide? o_O

    Merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      8 août 2006 à 22:37:23

      Le problème de validité ne se situe pas dans le JavaScript ceci dit.


      Tout d'abord, l'attribut language est à remplacer par l'attribut type, sous le type de document que tu utilise :
      <script type="text/javascript">

      Les attributs sont toujours en minuscule ; onclick et non onClick.

      Sinon, ton document doit obligatoirement être intitulé via l'élément TITLE.

      C'est à peu près tout, mais mieux vaut voir le code entier et les erreurs retournées.
      • Partager sur Facebook
      • Partager sur Twitter
        10 août 2006 à 23:09:37

        Merci Atlyric pour ta réponse. ;)

        J'ai repris l'écriture de ma page en séparant le code javascript dans un fichier séparé intitulé "fonction.js"

        <script type="text/javascript" src="fonction.js"></script>


        Ma fonction est la suivante :

        function resizePopUp(monImage, monTitre)

            {

                w = window.open('','chargement','width=10,height=10');

                w.document.write( "<html><head><title>"+monTitre+"</title>\n" );

                w.document.write( "<script language='JavaScript'>\n");

                w.document.write( "IE5=NN4=NN6=false;\n");

                w.document.write( "if(document.all)IE5=true;\n");

                w.document.write( "else if(document.getElementById)NN6=true;\n");

                w.document.write( "else if(document.layers)NN4=true;\n");

                w.document.write( "function autoSize() {\n");

                w.document.write( "if(IE5) self.resizeTo(document.images[0].width+10,document.images[0].height+31);\n");

                w.document.write( "else if(NN6) self.sizeToContent();\n");

                w.document.write( "else window.resizeTo(document.images[0].width,document.images[0].height+20);\n");

                w.document.write( "self.focus();\n");

                w.document.write( "}\n</scri");

                w.document.write( "pt>\n");

                w.document.write( "</head><body leftmargin=0 topmargin=0 marginwidth=0 marginheight=0 onLoad='javascript:autoSize();'>" );

                w.document.write( "<a href='javascript:window.close();'><img src='"+monImage+"' border=0 alt='"+monTitre+"'></a>" );

                w.document.write( "</body></html>" );

                w.document.close();

                }



        Ensuite, les liens pour mes photos sont les suivants :


        <a href="#images/vue_num_01.jpg"></a><a href="#" onclick="resizePopUp('images/vue_num_01.jpg','vue externe')"><img src="images/vignettes/vignette_num_01.jpg" alt="vue externe" title="Cliquez sur l&#039;image pour l&#039;agrandir !"/></a>


        En effet, il fallait écrire "onclick" en minuscule o_O . Je m'étais un peu mélangé les pinceaux en fermant mes balises et j'avais mis des points-virgules en trop :-° . Maintenant ça fonctionne et c'est valide XHTML 1.1 :p

        LE SUJET EST DONC CLOS. MERCI POUR VOTRE AIDE.
        • Partager sur Facebook
        • Partager sur Twitter
          11 août 2006 à 9:55:11

          Non ce n'est pas réellement valide XHTML1.1 ;)

          Mais bon, à quoi bon vouloir répéter une chose qui de toute manière ne vaut pas grand chose, à part pour les puristes auto-proclamés.
          • Partager sur Facebook
          • Partager sur Twitter
            15 août 2006 à 23:54:15

            Ben pourquoi? o_O Le W3c me dit que si pourtant. Tu peux m'expliquer pour ma culture perso... :) Merci.
            • Partager sur Facebook
            • Partager sur Twitter

            Javascript et validateur XHTML

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown