Comment gérer les erreur d’ IE ; exemple : Ma_Balise_Script.appendChild(mon_script)
Pour introduire le probleme, voici un exemple avec qui, je galère en ce moment :
Pour introduire le probleme, voici un exemple avec qui, je galère en ce moment : Je dois récupérer un script(renvoyé par Traitement.PHP
) variable avec une requête AJAX
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| $.ajax({
url: 'Traitement.php',
dataType: 'html',
data: { Param1: Valeur1},
error : function(resultat, statut, erreur){
alert("Probleme innattendu");
},
complete : function(resultat, statut){
// Si la balise script existe deja: la supprimer
if(document.getElementById ('Ajout_Script')) {
document.getElementById ('Ajout_Script').parentNode.removeChild(document.getElementById('Ajout_Script'));
}
// Creer la balise script et l'ajouter au HEAD
var Script_Var = document.createElement('script');
Script_Var.type = 'text/javascript';
Script_Var.id = "Ajout_Script";
var sText = document.createTextNode(resultat.responseText);
Script_Var.appendChild(sText);
document.getElementsByTagName('head').item(0).appendChild(Script_Var);
}
}); |
Et voici l’erreur que me donne IE :
SCRIPT65535: Demande d'accès à la méthode ou aux propriétés inattendue.
Script_Var.appendChild(sText);
* Après, j’ai essayé avec ça (au lieu de appendChild) :
Script_Var.textContent = resultat.responseText ;
Mais là, le code est ajouté, mais , il n’est pas interpreté, il est considéré comme du texte statique !!
* Après, j’ai essayé avec ça :
Script_Var.innerHTML = resultat.responseText ;
SCRIPT600: Erreur d'exécution inconnue
* Après, j’ai essayé avec ça :
Script_Var.text = resultat.responseText ; Et la ça marche
Mais, je ne suis pas sur, si ça marche avec d’autres versions et d’autres navigateurs ;
Alors que dois-je faire mes amis , avant qu’ IE me rende fou ??!!:cry:
J’ai deux autres questions en relations :
1. Comment connaitre le navigateur d’une façon fiable avec Javascript :
Si Navigateur = IE alors { ………… }
Else { …………. }
2. Comment, avec le code, détecter qu’il y a erreur pour tester une autre méthode ; genre :
{ Methode1 :
Instruction1
Instruction2
….
} s’il y erreur alors { Methode 2 :
…
}
MERCI d’avance pour votre aide.
Peut etre une des solutions
J'ai trouvé une solution:
if (!Script_Var.appendChild) { Script_Var.appendChild(resultat.responseText); } else { Script_Var.text = resultat.responseText ; };
Que en dites-vous ?