Bonjour
le code que je vous présente est tiré de deux tutorial ajax sur dev.com
index.php
xhr.js :
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 <?xml version="1.0" encoding="UTF-8"?> <!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> <title>Galerie Photos</title> <script type="text/javascript" src="js/xhr.js"></script> <script type="text/javascript" src="js/loadXML.js"></script> <script type="text/javascript"> loadXML() ; </script> </script> </head> <body> <div id="content"><div> </body> </html>
loadXML.js :
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 function getXHR() { var xhr = null; if(window.XMLHttpRequest) // Firefox et autres xhr = new XMLHttpRequest(); else if(window.ActiveXObject){ // Internet Explorer try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } } else { // XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); xhr = false; } return xhr ; }
dvd.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 function loadXML() { xhr = getXHR() ; var url = "js/dvd.xml"; xhr.onreadystatechange = handleHttpResponse; xhr.open("POST", url, true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.send(); } function handleHttpResponse() { if(xhr.readyState == 4 && xhr.status == 200) { response = xhr.responseXML; var items = response.getElementsByTagName("item"); var html = ''; count = items.length; for(i = 0; i < count; i++) { alert(i); html += '<div class="item">'; html += '<h1>' + items[i].getElementsByTagName("title")[0].firstChild.nodeValue + '</h1>'; html += '<div class="author">Réalisateur : '; html += items[i].getElementsByTagName("director")[0].firstChild.nodeValue + '</div>'; html += '<div class="price">Prix : '; html += items[i].getElementsByTagName("price")[0].firstChild.nodeValue + ' </div>'; html += '</div>'; } document.getElementById('content').innerHTML += html; } }
Le code ci-dessus (qui affiche le contenu du fichier XML dans la page) fonctionne correctement sous FF (3.5.2) mais aucunement sous IE (8.0).
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 <?xml version="1.0" encoding="utf-8"?> <dvd> <item> <title>Princesse Mononoké</title> <director>Hayao Miyazaki</director> <price>14,99</price> </item> <item> <title>Mon voisin Totoro</title> <director>Hayao Miyazaki</director> <price>19,99</price> </item> <item> <title>Blood, The Last Vampire</title> <director>Hiroyuki Kitakubo</director> <price>11,99</price> </item> </dvd>
quelqu'un aurait une idée ?
J'ai lu sur le net que pour IE il fallait modifier le header de la page et forcer la page à ne rien mettre en cache mais cela ne fonctionne pas
D'avance merci
Nicolas
Partager