Erreur sous IE mais pas sous Firefox... help

zut69 Messages postés 354 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 26 juin 2012 - 15 août 2007 à 01:02
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 18 août 2007 à 14:10
<table id="HB_Mail_Container" unselectable="on" border="0" cellpadding="0" cellspacing="0" height="100%" width="100%">

----, Bonsoir (ou bonne nuit),

J'ai une erreur dans un de mes codes et je n'arrive pas à la trouver.

Firefox m'exécute tout correctement, mais IE me met erreur à la ligne 43 et 47

ce qui correspond à:

43:   document.GetElementById(ID).innerHTML = Content;

47:   document.all[ID].innerHTML = Content;

le code:

   var ns4 = document.layers;           //NS 4

   var ie4 = document.all;              //IE 4

   var dom = document.GetElementById;   //NS 6 ou IE 5

   function setDiv(ID,Content) {

      if (dom) {

         document.GetElementById(ID).innerHTML = Content;

         return;

      }

      if (ie4) {

          document.all[ID].innerHTML = Content;

         return;

      }

      if (ns4) {

          with (eval('document.'+ID+'.document')) {

             open();

             write(Content);

             close();

         }

         return;

      }

   }

C'est bizarre, parce que ces lignes ne le concernent pas, il ne devrait pas s'en préoccuper. vu que c est pour dom et ie4...

merci

FF
</td>

</td>
</tr>
</tbody>
</table>

11 réponses

zut69 Messages postés 354 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 26 juin 2012 1
15 août 2007 à 01:04
zut, désolé j ai fait une erreur. la ligne 43 il me mettait un bug à cause du g minuscule, que j'ai déjà corrigé, et en fait c'est faux qu'aucune ligne le concerne, une oui, l'autre non...

merci
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
15 août 2007 à 11:58
Bonjour,

    quel n° de lignes ? on ne les a pas !

    comme ça ça baigne :

<script type="text/javascript">>
   var ns4 = document.layers;           //NS 4
   var ie4 = document.all;              //IE 4
   var dom = document.getElementById;   //NS 6 ou IE 5

   function setDiv(ID,Content) {
      if (dom) {
         document.getElementById(ID).innerHTML = Content;
         return;
      }
      if (ie4) {
          document.all[ID].innerHTML = Content;
         return;
      }
      if (ns4) {
          with (eval('document.'+ID+'.document')) {
             open();
             write(Content);
             close();
         }
         return;
      }
   }
    setDiv("toto","exemple")
</script>

pas testé sous ns4 !

<hr />



Cordialement                Bul         [mon Site]     [M'écrire]




<hr />




Généralement, c'est absurde de généraliser.
0
zut69 Messages postés 354 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 26 juin 2012 1
15 août 2007 à 12:40
merci, mais ca ne marche toujours pas dans mon code, le problème c est peut etre parce que Content contient du code html ce qui pourrait peut etre interférer avec la fonction je sais pas trop comment.
Regarde ce que je contient Content dans mon cas:

"
<form name='renommer' action='admin.php3' method='POST'>&nbsp;&nbsp;&nbsp;&nbsp;</form>&nbsp;
&nbsp;"

Je ne vois pas de problème comme ça, ça devrait passer pourtant. Firefox est quand même bien plus intelligent que IE...
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
15 août 2007 à 12:54
>>pourtant. Firefox est quand même bien plus intelligent que IE.
    bien sûr que non !!
    je n'irais  pas jusqu'à dire que je pense le contraire ! quoique ;-))
    d'ailleurs intelligent pour un produit ??

    ce sont 2 produits différents, chacun avec ses avantages, ses inconvénients...
    chacun ses goûts !


>>merci, mais ca ne marche toujours pas dans mon code
    dans ton code. peut-être.
    ce que je t'ai fourni fonctionne. essaye.

    quand à ce que tu y met, après avoir définii ce qu'il faut ( en rouge )
    ça baigne aussi.

<script type="text/javascript">
   var ns4 = document.layers;           //NS 4
   var ie4 = document.all;              //IE 4
   var dom = document.getElementById;   //NS 6 ou IE 5

   function setDiv(ID,Content) {
      if (dom) {
         document.getElementById(ID).innerHTML = Content;
         return;
      }
      if (ie4) {
          document.all[ID].innerHTML = Content;
         return;
      }
      if (ns4) {
          with (eval('document.'+ID+'.document')) {
             open();
             write(Content);
             close();
         }
         return;
      }
   }
    file="toto.ext";
    file_sans_ext="toto";
    setDiv("toto","
<form name='renommer' action='admin.php3' method='POST'>&nbsp;&nbsp;&nbsp;&nbsp;</form>&nbsp;
&nbsp;")
</script>







<hr />



Cordialement                Bul         [mon Site]     [M'écrire]



<hr />




Généralement, c'est absurde de généraliser.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
15 août 2007 à 13:02
au fait... en cas d'erreur "difficile" :










o~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~o 
| Avec | et mieux : <label style="color: rgb(0, 128, 0);">Télécharger</label> | 
|~~~~~~~~~~~~~~~~~|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|~~~~~~~~~~~~~~~~| 
|<label style="color: rgb(128, 0, 0);">FireFox</label> |regarder la "console d'erreurs" | FireBug
| | Outils / Console d'erreurs | | 
|~~~~~~~~~~~~~~~~~|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|~~~~~~~~~~~~~~~~| 
|<label style="color: rgb(128, 0, 0);">Internet Explorer</label>|activer le deboggage : utils/options Ile Debogger IE | 
| | dans la liste, sous "Navigation" : décocher | | 
| | ° Afficher une notification de chaque erreur de script | | 
| | ° Désactiver le débogage de Scripts (autres applications)| | 
| | ° Désactiver le débogage de Scripts (Internet Explorer) | | 
o~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~o









<hr />




Cordialement                Bul         [mon Site]     [M'écrire]
<hr />


Généralement, c'est absurde de généraliser.
0
zut69 Messages postés 354 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 26 juin 2012 1
15 août 2007 à 13:21
merci, j ai installé Debogger IE, mais il ne fait que me surligner cette ligne:

document.getElementById(ID).innerHTML = Content;

qui est dans la condition du if(dom)

je vois pas ou est l erreur mais bon...
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
15 août 2007 à 13:56
>>il ne fait que me surligner cette ligne:


et alors...

          que contient ID ? (  j'ai du ajouter un div pour que ça baigne !  )
          comment est décrit l'élément qui reçoit ? je ne sais pas/
          comment est appelé la fonction ?  je ne vois pas non plus.
          que contient Content ?
( ok, ça j'ai vu, mais j'ai du ajouter

                   des choses pour que ça baigne !  )


          quel est le message d'erreur ?

          je ne vois pas d'erreur sur cette ligne directement, certes,
             je ne vois peut-être pas très bien.

    encore une fois, ce que je t'ai mis fonctionne.
    tu as essayé ?

    tu ne nous donnes pas tout ce qu'il faut pour qu'on corrige ton erreur
       ( j'ai bien dis ton erreur, pas celle d'IE ou d'un autre navigateur )
      

<hr />



Cordialement                Bul         [mon Site]     [M'écrire]



<hr />

Généralement, c'est absurde de généraliser.
0
zut69 Messages postés 354 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 26 juin 2012 1
16 août 2007 à 23:46
Bon, alors voila, la je te donne tout:

   function setDiv(ID, Num_content, file, file_sans_ext) {
         if (Num_content == 1) {
      Content = "
<form name='renommer' action='admin.php3' method='POST'>&nbsp;&nbsp;&nbsp;&nbsp;</form>&nbsp;
&nbsp;";
      }
         if (Num_content == 2) {
      Content = "&nbsp;-- Renommer --&nbsp;";
      }
  
      if (dom) {
         document.getElementById(ID).innerHTML = Content;
         return;
      }
      if (ie4) {
          document.all[ID].innerHTML = Content;
         return;
      }
      if (ns4) {
          with (eval('document.'+ID+'.document')) {
             open();
             write(Content);
             close();
         }
         return;
      }
   }

J'ai déjà modifié un petit peu pour etre sur que le problème ne venait pas de l'argument,
vu que ca ne peut etre que 2 codes différents, je soumets un numéro, 1 ou 2 pour savoir lequel j'ai besoin.
Ensuite, j'ai une autre fonction qui remet tout à zéro puis qui active ce que je veux:
function setAllDiv(id,file,file_sans_ext) {
setDiv("id_0","2","Biquette.JPG","Biquette");
setDiv("id_1","2","Broadway.jpg","Broadway");
setDiv("id_18","2","pingouins.gif","pingouins"); //ici, normalement j'ai une grosse liste générée automatiquement par php
setDiv(id, "1", file, file_sans_ext);
}

en fait, le principe du code c est de cliquer sur un lien et celui-ci se transforme en un formulaire
et que lorsque je clique sur un autre lien qui correspond à une autre photo, il réaffiche le lien pour
l'autre formulaire et mette un formulaire ou il y a eu le nouveau clic.

Et pour les div et liens du code html, voici un des div au hasard, mais c est tous les meme de toute facon(boucle php);
<div id="id_18"><a href="javascript: setAllDiv('id_18','pingouins.gif','pingouins')">-- Renommer --</a></span></td></div>

Voilà, là tu as vraiment tout, mais je pense que l'erreur doit venir de cette ligne: document.getElementById(ID).innerHTML = Content;
parce qu'en la mettant en commentaire, il y a plus d'erreur, mais bon ca marche toujours pas vu qu'on ne lui demande pas de modifier
le contenu du div...

merci pour ton aide,
a+
FF
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
17 août 2007 à 06:34
ben... pas tout quand même !

   var ns4 = document.layers;                       //NS 4
   var ie4 = document.all;                              //IE 4
   var dom = document.getElementById;    //NS 6 ou IE 5      j'ai du remettre
function setDiv(ID, Num_content, file, file_sans_ext) {...

function setAllDiv(id,file,file_sans_ext) {
//setDiv("id_0","2","Biquette.JPG","Biquette");         // j'ai du
//setDiv("id_1","2","Broadway.jpg","Broadway");     // sucrer car non défin i !
setDiv("id_18","2","pingouins.gif","pingouins"); //ici, normalement j'ai une grosse liste générée automatiquement par php
//setDiv(id, "1", file, file_sans_ext);
}

avec le debugger IE, on voit que id_0 est indéfini
    ( comme avec FF d'ailleurs )

et la plus de plantage sur la ligne incriminée.... sans préjuger du reste...

<hr /> Cordialement Bul [mon Site] [M'écrire]<hr />Généralement, c'est absurde de généraliser.
0
zut69 Messages postés 354 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 26 juin 2012 1
18 août 2007 à 13:31
non, mais là je t'ai mis le div id_18 pour te montrer la structure de mes div, mais, j'ai tous les div de id_0 jusqu'à id_xx,
c'est aussi une boucle php qui me génère les div, de la meme manière qu'une partie du code javascript.
J'ai tout revérifier mais tout me semble correct...
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
18 août 2007 à 14:10
que veux tu que je te dise ???      ???
        avec ce que tu nous donnes, avec IE ou FF, ça plante.
        si je modifie ( les trucs en rouge dans mon message ) : IE ou FF, ça baigne.
<hr />


Cordialement                Bul         [mon Site]     [M'écrire]<hr />

En général, c'est absurde de généraliser.
0
Rejoignez-nous