[JS] Je deviens chèvre

Je deviens chèvre [JS] - HTML/CSS - Programmation

Marsh Posté le 08-07-2006 à 15:11:52    

Je suis en train de faire un petit site. Vu que je suis sous Vista béta 2, je n'ai que IE7 qui est lui aussi en béta pour tester.
Donc quand j'ai eu mon problème au début, j'ai remis ça sur le dos de la béta.
Mais depuis que j'ai dwl Mozilla, et que j'ai le même problème, là je commence à sècher sérieusement...
 
Voici ma page :
 


<?xml version="1.0" encoding="utf-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head xmlns="">
    <title>Accueil</title>
    <script type="text/javascript" src="xsl/js/debug_links.js" />
  </head>
  <body>
    <form action="." method="post">
      <div style="border: solid 1px black; float: left; height: 100%" xmlns="">
        <ul>
          <li><a href="?page=P_HOME">Acceuil</a><br /><i><font size="-2">Page d'acceuil</font></i></li>
          <li><a href="?page=P_HELP">Aide</a><br /><i><font size="-2">Besoin d'aide ?</font></i></li>
          <li><a href="?page=P_ARTICLE_LIST">Articles</a><br /><i><font size="-2">Voir les articles</font></i></li>
        </ul>
        login: <input type="text" name="chp:user_nickname" /><br />
        pass: <input type="password" name="chp:user_password" /><br />
        <input type="submit" />
      </div>
      <p xmlns="">
        <font size="-1">
          MagicSite beta 1 - MagicBuzz 2006 © - Tous droits réservés 2006
        </font>
      </p>
    </form>
  </body>
</html>


 
On notera le :

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


 
Il n'est pas formé comme d'habitude, avec une baliser fermante, car la page est en fait générée par du XSL.
 
Sous IE7 : rien ne s'affiche.
Sous FF, ça marche (étrange, voyez la suite). Le JS qui est inclut (qui contient un "window.onload" ) s'éxécute bien.
 
Une fois que j'ai chargé avec FF, je rempli le formulaire, et je recharge la page.
 


<?xml version="1.0" encoding="utf-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head xmlns="">
    <title>Accueil</title>
    <script type="text/javascript" src="xsl/js/debug_links.js" />
  </head>
  <body>
    <form action="." method="post">
      <div style="border: solid 1px black; float: left; height: 100%" xmlns="">
        <ul>
          <li><a href="?page=P_HOME">Acceuil</a><br /><i><font size="-2">Page d'acceuil</font></i></li>
          <li><a href="?page=P_HELP">Aide</a><br /><i><font size="-2">Besoin d'aide ?</font></i></li>
          <li><a href="?page=P_ARTICLE_LIST">Articles</a><br /><i><font size="-2">Voir les articles</font></i></li>
        </ul>
        Bonjour MagicBuzz
        <input type="hidden" name="chp:user_id" value="1" />
        <input type="hidden" name="chp:user_nickname" value="MagicBuzz" />
        <input type="hidden" name="chp:user_password" value="lepassword" />
        <script type="text/javascript" language="javascript">
            alert("toto" );
        </script>
      </div>
      <p xmlns="">
        <font size="-1">
          MagicSite beta 1 - MagicBuzz 2006 © - Tous droits réservés 2006
        </font>
      </p>
    </form>
  </body>
</html>


 
Quasiment la même page quoi.
Avec IE, vu la page précédente, je ne peux pas tester.
Sous FF... Là c'est sport : seul "MagicSite beta 1 - MagicBuzz 2006 © - Tous droits réservés 2006" s'affiche ! Et le js (alert) ne se lance pas. Pour l'autre JS, je ne peux pas vérifier, puisqu'il impacte les liens qui disparraissent.
 
Si dans la première page, je rajoute un block JS de ce style dans le body, ça marche sous IE7 et les JS se lancent :


<script type="text/javascript" language="javascript">
  alert("toto" );
</script>


 
Si je vire simpement toute trace de JS, ça marche parfaitement dans les deux navigateur.
 
Dans tous les cas, sous les deux navigateurs, je n'ai pas d'erreur JS.
Et c'est pas le JS inclu qui efface la page, voyez vous-même :
 

Code :
  1. // This file add the "debug" directive to all links on the page if it is set on the current url
  2. // In other words, it extends the debug feature to the whole site
  3. function UpdateLinksWithDebugFlag()
  4. {
  5.     if (window.location.href.indexOf("?" ) > -1)
  6.     {
  7.         var debugEnabled = false;
  8.         var params = window.location.href.substr(window.location.href.indexOf("?" ) + 1).split("&" );
  9.         for (var i = 0; i < params.length; i++)
  10.         {
  11.             if (params[i] == "debug=1" )
  12.             {
  13.                 debugEnabled = true;
  14.                 break;
  15.             }
  16.         }
  17.         if (debugEnabled)
  18.         {
  19.             for (var i = 0; i < document.links.length; i++)
  20.             {
  21.                 if (document.links[i].href.indexOf("?" ) > -1)
  22.                 {
  23.                     document.links[i].href += "&debug=1";
  24.                 }
  25.                 else
  26.                 {
  27.                     document.links[i].href += "?debug=1";
  28.                 }
  29.             }
  30.             for (var i = 0; i < document.forms.length; i++)
  31.             {
  32.                 if (document.forms[i].action.indexOf("?" ) > -1)
  33.                 {
  34.                     document.forms[i].action += "&debug=1";
  35.                 }
  36.                 else
  37.                 {
  38.                     document.forms[i].action += "?debug=1";
  39.                 }
  40.             }
  41.         }
  42.     }
  43. }
  44. window.onload = UpdateLinksWithDebugFlag;


 
Une idée ? Parceque là, je trouve que c'est un comportement plus qu'étrange... Et je suis complètement coincé !


Message édité par Arjuna le 08-07-2006 à 15:12:42
Reply

Marsh Posté le 08-07-2006 à 15:11:52   

Reply

Marsh Posté le 08-07-2006 à 15:17:26    

Si pour ton script JS tu mets la balise fermante, c'est toujours pareil ?

Reply

Marsh Posté le 08-07-2006 à 15:21:43    

Bah je peux pas trop tester, puisque c'est généré par du XSL (et que ce con me shoot la balise fermante tout seul). Dans le fichier original, il y a bien une balise fermante.

Reply

Marsh Posté le 08-07-2006 à 15:24:03    

En faisant "enregistrer sous" la page, et en mettant le tag de fin, en effet ça marche.
 
Sauf que là, je suis ennuyé pour conserver cette foutue balise fermante :/

Reply

Marsh Posté le 08-07-2006 à 15:27:47    

Arf !
 
J'étais pourtant sûr d'avoir testé hier soir...
Mais c'est bon, j'ai corrigé CE problème de la façon suivante :
 
Dans mon XSL :

<script type="text/javascript" src="xsl/js/debug_links.js">/**/</script>

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed