Bonjour a tous,
Mon problème est dans le titre.
Le code qui suit fonctionne très bien sous IE 6.0 et Opera 9, dans les deux mode.
Les deux alert disposée dans ce code renvoient bien la valeur demandée, mais pas sous FireFox 3.0 en mode synchrone.
Il y a-t-il un moyen pour y remèdier ou c'est un BUG de FireFox.
Si c'est le cas, c'est un problème que Mozilla devrait résoudre car c'était déjà ça avec la version 2.
Merci.
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 function XmlHttpRequest_Object(webPage,values){ var xhr_object = null; var oResponse = ""; var oSend = false; /* A True si réussite de l'envois de la requête */ /** Si le navigateur est "FireFox" ou "Opera" **/ if (window.XMLHttpRequest){ xhr_object = new XMLHttpRequest(); } else{ /** Si le navigateur est "Internet Explorer" **/ if (window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); else alert("Votre navigateur n'est pas compatible avec la technologie AJAX !"+ "\n\nL'application ne pourra pas fonctionner correctement."+ "\nVeuillez utiliser un autre navigateur (Internet Explorer recommandé)."); } xhr_object.open ("POST", webPage, false); /* True = asynchrone, False = synchrone */ xhr_object.onreadystatechange = function(){ if (xhr_object.readyState == 4){ if (xhr_object.status == 200){ /* Status semble disponible qu'une fois l'état 4 passé */ alert(xhr_object.status) oResponse = xhr_object.responseText.split(";"); oSend = true; alert("fonction onreadystatechange: "+ oResponse[0]); } else{ oSend = false; alert("XmlHttpRequest"+ "\n\nErreur: "+ xhr_object.status + "\nStatut: "+ xhr_object.statusText + "\nEtat de l'envois: "+ xhr_object.readyState + "\n\nErreur lors de l'envois de la requête"+ "\n\nContacter le service informatique"); } } }; xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhr_object.send(values); if (oSend == true) return oResponse; }
Partager