Marche pas sous ie7

Signaler
Messages postés
36
Date d'inscription
jeudi 29 mars 2007
Statut
Membre
Dernière intervention
4 février 2009
-
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
-
Bonjour,

je débute sous java script..j'ai créé un petit tableau dynamique qui fonctionne très bien sous mozilla firefox mais pas sous ie7. Est ce que quelqu'un peut m'aider à trouver l'erreur pour mon code svp.. Merci d'avance

<HTML>
    <head>
        <script language='javascript' type='text/javascript'>

        var countName = 0;
      
        function addPerson ()
            {
                                rowRegister = document.createElement ('tr');

                                cellPerson = document.createElement ('td');
                                textPerson = document.createTextNode (prompt("Add Person","Person"));

                                cellPerson .appendChild (textPerson);

                                cellPresence = document.createElement ('td');
            cellPresence.setAttribute('align','center')

            /*textPresence = document.createElement('a'); 
             textPresence.setAttribute('href', 'javascript:addPerson()');
                                linkTextPresence = document.createTextNode ('');
            textPresence .appendChild (linkTextPresence);*/
           
            linkPicturePresence = document.createElement('img'); 
             linkPicturePresence.setAttribute('src', 'feu_rouge.gif');
            linkPicturePresence.setAttribute('name', 'homeButton' + countName);
            linkPicturePresence.setAttribute('border', '0');
            picturePresence = document.createElement('a');
            picturePresence.setAttribute('href', 'javascript:changeStatePresence(linkPicturePresence.src,linkPicturePresence.name)');
            picturePresence .appendChild (linkPicturePresence);

                                cellPresence.appendChild (picturePresence);

                                rowRegister .appendChild(cellPerson);
                                rowRegister .appendChild(cellPresence);

                                document.getElementById ('tabPresence').appendChild (rowRegister);
                            }

        function changeStatePresence (src,name)
            {
                                if(document.images["homeButton"].src=="feu_vert.gif")
                {
                prompt("MISE AU ROUGE",src + " " + name)
                document.images["homeButton"].src="feu_rouge.gif"
                }
            else
                {
                prompt("MISE AU VERT",src + " " + name)
                document.images["homeButton"].src="feu_vert.gif"
                }
                            }
              
                </script>
    </head>

   

               

        [# Add Person]
   
</HTML>

8 réponses

Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
9
bonjour,
setAttribute qui est différent dans les navigateurs
on vient d'en causer ici :
http://www.javascriptfr.com/forum/sujet-SETATTRIBUTE-NE-FONCTIONNE-PAS-COLOR_1264550.aspx

tu y verras que PetoleTeam conseille de n'utiliser setAttribute
qu'avec parcimonie... perso, comme je ne connais pas ce produit,
ce logiciel, j'évite de me servir de setAttribute, d'autant que
c'est beaucoup plus simple sans...

Cordialement.
Messages postés
36
Date d'inscription
jeudi 29 mars 2007
Statut
Membre
Dernière intervention
4 février 2009

Merci pour ta réponse mais j'ai toujours le même problème.. Voici mon nouveau code:

J' ai peut etre fait de nouveau une erreur ?

<HTML>
    <head>
        <script language='javascript' type='text/javascript'>

        var countName = 0;
      
        function addPerson ()
            {
            rowRegister = document.createElement ('tr');

                                cellPerson = document.createElement ('td');
                                textPerson = document.createTextNode (prompt("Add Person","Person"));

                                cellPerson .appendChild (textPerson);

                                cellPresence = document.createElement ('td');
            cellPresence.align = 'center';

            linkPicturePresence = document.createElement('img');
            linkPicturePresence.src = 'feu_rouge.gif';
            linkPicturePresence.name = 'homeButton';
            linkPicturePresence.border = '0';
           
            picturePresence = document.createElement('a');
            picturePresence.href = 'javascript:changeStatePresence(linkPicturePresence.src,linkPicturePresence.name)';
            picturePresence .appendChild (linkPicturePresence);

                                cellPresence.appendChild (picturePresence);

                                rowRegister .appendChild(cellPerson);
                                rowRegister .appendChild(cellPresence);

                                document.getElementById ('tabPresence').appendChild (rowRegister);
                            }

        function changeStatePresence (src,name)
            {
                                if(document.images["homeButton"].src=="feu_vert.gif")
                {
                prompt("MISE AU ROUGE",src + " " + name)
                document.images["homeButton"].src="feu_rouge.gif"
                }
            else
                {
                prompt("MISE AU VERT",src + " " + name)
                document.images["homeButton"].src="feu_vert.gif"
                }
                            }
              
                </script>
    </head>

   

               

        [# Add Person]
   
</HTML>
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
9
c'est vrai que je n'ai pas regardé plus loin....
alors ajoute en tête devant <html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

par exemple ( car il y a d'autres possibilités )
ça devrait déjà aller mieux....

[mon Site][M'écrire]Bul
Messages postés
36
Date d'inscription
jeudi 29 mars 2007
Statut
Membre
Dernière intervention
4 février 2009

non ce n'est pas cela non plus.. :(

as-tu une autre idée ? stp

merci
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
9
ah bah... l'affichage au moins fonctionne !
j'ai testé avec IE8, mais bon pas de raisons avec IE7 à priori

pas le reste certes...

et toi ? l'affichage ok ou pas ?

[mon Site][M'écrire]Bul
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
Bonjour,
ton nouvel enregistrement ne se crée pas
dans le TBODY de la TABLE,sous IExplorer, mais
après celui ci, fait un alert de TABLE.innerHTML pour voir...

Une
solution pas géante, dans ton code tu écris
<tbody
id='tabPresence'>

Il me semble
néanmoins, ou plus exactement handicapé nasal (*), plus judicieux d'utiliser les
standards DOM ...
...création des lignes et des colonnes avec les fonctions
insertRow() et insertCell() entre autres...
;O)
(*)honteux plagiat
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
9
PetoleTeam++ c'était vrai avec IE7 et précédentes !
avec IE8... ça baigne tel que c'est là.
( et pour inserRow, inserCell ...
  c'est "bien plus simple" me semble-t-il ? )
@+
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
<table bgcolor="#e6effe" border="0" cellpadding="5" cellspacing="0" width="100%">

----,

avec IE8... ça baigne tel que c'est
là.

</td>

</td>
</tr>
</tbody>
</table>c'est bien
dommage cette rigeur honorait IExplorer
;O)