Bonjour,
Je coince sur un problème rencontré sous IE6/7/8.
Voila le contexte :
Lors de la saisie d'un formulaire (Jeu Video par exemple), j'ai ajouté un bouton coté d'une liste de société qui créé une popup permettant d'ajouter un élément à cette liste. La popup créé va valider un formulaire (celui de la société) dans une autre popup,la refermer puis rafraichir la liste des société de la page parente en ajax et pour finir ce refermer elle même.
Tous marche trés bien sous Firefox, mais sous IE j'ai une erreur à un endroit où il ne devrai pas y en avoir.
Voilà l'erreur : IE s'arrete avec pour erreur du debbugeur javascript : Breaking on JScript runtime error - Cette interface n'est pas prise en charge. sur select.appendChild(option);
Voila le code :
Le xml :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 function saveFormAjax(type,div) { //popup pour valider le formulaire popup_valid = window.open('about:blank','popup_valid','height=1px,width=1px,scrollbars=yes,menubar=yes') ; document.forms.form_obj.target = 'popup_valid' ; document.forms.form_obj.submit() ; popup_valid.close() ; //objet XMLHttpRequest var xhrPopup = getXhr() ; //recuperation du select a rafraichir var select = window.opener.document.getElementById(div) ; xhrPopup.onreadystatechange = function(){ if(xhrPopup.readyState == 4 && xhrPopup.status == 200){ //recuperation de la liste des options du fichier XML récupéré node_list = xhrPopup.responseXML.getElementsByTagName("root").item(0); //recuperation de la liste du formulaire parent var select = window.opener.document.getElementById(div) ; //purge de la liste parente while(select.hasChildNodes()) { select.removeChild(select.firstChild); } var i = 0 ; //pour chaque node, ajouter l'option correspondante à la liste for(i; i < node_list.childNodes.length; i++){ //creation de l'option var option = document.createElement('option'); option.value = node_list.childNodes.item(i).getAttribute('value') ; option.appendChild(document.createTextNode(node_list.childNodes.item(i).firstChild.nodeValue)); //!\\ IE s'arrete ici avec pour erreur : Breaking on JScript runtime error - Cette interface n'est pas prise en charge//!\\ select.appendChild(option); } } } xhrPopup.open("POST","index.php?action=adminPopup&refresh_type="+type,true); xhrPopup.setRequestHeader('Content-Type','application/xml;charset=utf-8'); xhrPopup.send(); }
Merci, Half
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <?xml version="1.0"?> <root> <option value="0">Ajouter une société...</option> <option value="1">Activision</option> <option value="2">Zinglinglin</otpion> ...etc... </root>
Partager