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 :

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();
}
Le xml :

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>
Merci, Half