Cela fait deux jours que je bloque sur mon code et pourtant je ne vois rien qui cloche...
Le problème qui me surprend le plus, c'est que sous Firefox, le serveur ne répond jamais à ma requête (readyState ne passe jamais à 3) alors que sous IE la réponse passe sans problèmes... Alors que sous IE, je n'arrive pas à accéder au contenu de mes div![]()
Ma version d'IE est la 7 et j'ai Firefox 2.0.0.6
Voici tout d'abord Mon code javascript :
Et maintenant la page html (générée par php) sur laquelle s'applique le script :
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 function getElement(rid) { return document.getElementById ? document.getElementById(rid) : document.all(rid) ; } function getXmlHTTP () { var xmlhttp = false; /* Compilation conditionnelle d'IE */ /*@cc_on @if (@_jscript_version >= 5) try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP") ; } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP") ; } catch (E) { xmlhttp = false ; } } @else xmlhttp = false ; @end @*/ if (!xmlhttp && typeof XMLHttpRequest != 'undefined') { try { xmlhttp = new XMLHttpRequest(); } catch (e) { xmlhttp = false; } } return xmlhttp; } function remplis_div(doc,texte) { elem2w = getElement('cadre_cible') ; /*test = doc.createElement('a') ; test.href = 'index.php' ; test.textContent = texte ; elem2w.appendChild(test) ;*/ alert(elem2w.textContent) ; } function gere_click_lien(id_element) { xmlhttp = getXmlHTTP() ; if (!xmlhttp) { return ; } xmlhttp.open("GET", "operations.php?operation=lien&cible="+escape(id_element) ,true) ; xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4) { alert("Code html : "+xmlhttp.status) ; remplis_div(document,xmlhttp.responseText) ; } } xmlhttp.send(null); }
Pour ce qui est du contenu du fichier operations.php, le voici :
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 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> <meta name="author" content="tsukaniki" /> <meta name="robots" content="none" /> <meta name="refresh" content="900" /> <meta http-equiv="Content-language" content="fr" /> <title>Base de donnée des DVDs</title> <style type="text/css" title="default"> div.menu_elt { display:inline; padding:0 5px; margin:0 5px; border:0; } </style> <script type="text/javascript" language="JavaScript1.5" src="scripts.js" charset="ISO-8859-1"></script> </head> <body> <div id="grand_cadre"> <div id="menu"> <div class="menu_elt"><a href="index.php" id="lien_addfilm" onclick="gere_click_lien('lien_addfilm');">Ajout de film</a></div><div class="menu_elt"><a href="index.php" id="lien_rechrap" onclick="gere_click_lien('lien_rechrap');">Recherche rapide</a></div><div class="menu_elt"><a href="index.php" id="lien_rechav" onclick="gere_click_lien('lien_rechav');">Recherche avancée</a></div><div class="menu_elt"><a href="index.php" id="lien_geneliste" onclick="gere_click_lien('lien_geneliste');">Génération de liste</a></div><div class="menu_elt"><a href="index.php" id="lien_gestprets" onclick="gere_click_lien('lien_gestprets');">Gestion des prêts</a></div><div class="menu_elt"><a href="index.php" id="lien_autresope" onclick="gere_click_lien('lien_autresope');">Autres opérations</a></div> </div> <div id="cadre_cible"> bla bla bla bla bla et bla</div> <div id="infos"> </div> </div> </body> </html>
Il contenait beaucoup plus de code avant, mais je l'ai simplifié pour essayer de trouver l'erreur. Je n'ai pas de réponse avec Firefox que j'ai mis ou non header()...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <?php header('Content-Type: text/html; charset=ISO-8859-1') ; echo 'bla bla' ; ?>
Quelqu'un a-t-il une idée sur pourquoi je n'ai pas de réponse du serveur sous firefox et pourquoi sous IE textContent me retourne undefined ?
Merci d'avance
PS : Petite précision, les tests sont fait en local sur ma machine avec EasyPhp (la dernière version en date).
Partager