11550 sujets

JavaScript, DOM et API Web HTML5

Bonjour, j'ai réalisé un petit script (n'étant pas pro du javascript ) :

<script  language="javascript">
function montre1() {
 var fichier1 = "###FIELD_FICHIER###";
if (fichier1 != "") document.getElementById('file1###FIELD_uid###').innerHTML = "<a href='http://.../###FIELD_FICHIER###' target='_blank' title='###FIELD_FICHIER###'><img src='http://.../images/pdf_document_small.png'></a>";
else document.getElementById('file1###FIELD_uid###').innerHTML = '';
}

function montre2() {
 var fichier2 = "###FIELD_FICHIER1###";
if (fichier2 != "") document.getElementById('file2###FIELD_uid###').innerHTML = "<a href='http://.../###FIELD_FICHIER1###' target='_blank' title='###FIELD_FICHIER1###'><img src='http://.../images/pdf_document_small.png'></a>";
else document.getElementById('file2###FIELD_uid###').innerHTML = '';
}
function montre3() {
 var fichier3 = "###FIELD_FICHIER2###";
if (fichier3 != "") document.getElementById('file3###FIELD_uid###').innerHTML = "<a href='http://.../###FIELD_FICHIER2###' target='_blank' title='###FIELD_FICHIER2###'><img src='http://.../images/pdf_document_small.png'></a>";
else document.getElementById('file3###FIELD_uid###').innerHTML = '';
}
function montre4() {
 var fichier4 = "###FIELD_FICHIER3###";
if (fichier4 != "") document.getElementById('file4###FIELD_uid###').innerHTML = "<a href='http://.../###FIELD_FICHIER3###' target='_blank' title='###FIELD_FICHIER3###'><img src='http://.../images/pdf_document_small.png'></a>";
else document.getElementById('file4###FIELD_uid###').innerHTML = '';
}
</script>
<script  language="javascript">
window.addEventListener('load', montre1, false);
window.addEventListener('load', montre2, false);
window.addEventListener('load', montre3, false);
window.addEventListener('load', montre4, false);
</script>




<span id="file1###FIELD_uid###"></span><span id="file2###FIELD_uid###"></span><span id="file3###FIELD_uid###"></span><span id="file4###FIELD_uid###"></span>


Ce script doit être répété chaque ligne du tableau généré en Php ( Il est intégré dans un template pour une extension Typo3)
Le script fonctionne sous Firefox mais pas sous IE ( Rien ne s'affiche)
Dans le débugger j'ai un message :
"Cet objet ne gère pas cette propriété ou cette méthod> avec la ligne qui doit être en lien<"

Est ce que quelqu'un a une idée ? Smiley decu
Si je ne dis pas de bêtises, ça vient de la fonction addEventListener qui n'est pas reconnue par IE. Il faut utiliser à la place attachEvent.

J'ai un vieux bout de code qui traîne que je n'utilise plus, mais qui illustre ce que je faisais pour attacher les fonctions via JS :


function GestionnaireEvenementsIE() {
     document.getElementById('txtNom').attachEvent("onchange",ValidationNom);
     document.getElementById('txtPrenom').attachEvent("onchange",ValidationPrenom);
}

function GestionnaireEvenementsFireFox(){
     document.getElementById('txtNom').addEventListener("change",ValidationNom,true);
     document.getElementById('txtPrenom').addEventListener("change",ValidationPrenom,true);
}

/* Affectation des évènements aux objets */
window.onload = function(){
     if (document.addEventListener) {
          GestionnaireEvenementsFireFox();
          }else {
          GestionnaireEvenementsIE();
     }
}				
Bon, après quelques tests ca fonctionne avec le code ci dessous:

<script  language="javascript">
 if (document.addEventListener) {
window.addEventListener('load', montre1, false);
window.addEventListener('load', montre2, false);
window.addEventListener('load', montre3, false);
window.addEventListener('load', montre4, false);}
else {
window.attachEvent('onload' ,montre1);
window.attachEvent('onload' ,montre2);
window.attachEvent('onload' ,montre3);
window.attachEvent('onload' ,montre4);
}
</script>

Merci pour ton aide !.