Ajouter un commentaire

dav79
Re: Javascript - DOM - EI8 - incompabilité

Je te remercie pour ta réponse fredericmazue, en effet le problème vient delà c'est document.write() qui pose problème, j'ai trouvé cette même réponse sur un autre forum. Voici la l'explication et la solution complête

Le code est un problème, résumons ce que fait le code :
On parcours les éléments d'un ça ok pas de soucis
mais pour chaque élément de ce form, on fais un document.write ou document.writeln. Quand on fais un document.write.. on écrases le dom existant par un nouveau DOM, ce qui fait que n'existe plus, parcourir un élément qui n'existe plus, va provoquer cette erreur. Donc normal que IE8 renvoie une alerte
Le soucis, c'est le document.write qui est le problème, pour résoudre ce bug il l'une des solutions et de créer une div et utiliser la méthode innerHTML.

Ca fonctionne va FireFox et Chrome parceque quand on ajoute un élément avec write ces navigateurs ne vont pas ajouter le texte dans le source html et régénérer la page, mais juste généré le HTML à ajouter
pour en faire un segment DOM et chercher dans le source le point d'insertion
il vont alors retrouver dans le DOM l'élément correspondant au point d'insertion
et insérer le segment DOM

La solution est la suivante

Code :


<script type="text/javascript">
function validerFRM(frmFORM){
frmFORM.style.display="none";
for (var i = 0; i < frmFORM.elements.length; i++) {
document.getElementById('test').innerHTML+="
"+ frmFORM.elements[i].name;
}
}
</script>

Merci encore à tous qui m'ont aider, j'espère que la solution vous aidera aussi
A+.

dav79

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 TTTTTT  DDD   L     III  EEEE 
TT D D L I E
TT D D L I EEE
TT D D L I E
TT DDD LLLL III EEEE