Bonjour à tous,
Dans le cadre d'un projet, j'ai un souci spécifique, sur IE.

But: Charger des éléments de configuration renvoyés en json par un fichier PHP appelé via Ajax.
Je cherche à stocker le retour en json dans une variable globale préalablement déclarée.

Les fonctions utilisées
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
 
		// Prend en compte la spécificité XDomainRequest pour navigateurs IE
		function Fxdr() {
			var xdr = null;
			if (window.XDomainRequest) {
				xdr = new XDomainRequest(); 
			} else if (window.XMLHttpRequest) {
				xdr = new XMLHttpRequest(); 
			} else {
				xdr = null;
				//crossDomainLoadMessageFailed = 1;
			}
			return xdr;	
		}
		// Fonction de récupération de la configuration XML
		function getXmlConfig(u){
			var q = Fxdr();
			if(q != null)
			{
				q.onload = function() {
					alert(q.responseText);
					json = q.responseText;
				}
				q.open('get',u,false);
				q.send(null);
			}
		}
var json;
getXmlConfig(url_vers_le_fichier_php);
alert(json);
Mon problème:
la première alerte de la fonction getXmlConfig me renvoie bien le contenu du traitement du fichier PHP, même IE (version 8 dans mon cas -> contrainte projet)
la deuxième alerte, après l'appel de la fonction getXmlConfig, me retourne toujours le bon résultat sous Firefox, mais IE8 me renvoie 'undefined", qui correspond à la valeur déclarée par la ligne "var json;"
spécifier une valeur à json ("var json = 'test';") me renvoie "test" sous IE8 et le contenu json sous Firefox.
Y-a-t'il un moyen, sous IE8, d'assigner le retour d'une requete ajax à une variable globale ?

Mon but est d'exploiter l'objet json dans le reste du fichier javascript par la suite.

Tout idée ou soluce est bienvenue

Merci par avance pour votre aide