Citation:
window.HTMLHttpRequest
Version imprimable
Citation:
window.HTMLHttpRequest
Toujours pas... :cry:
quel id au fait ?Code:document.getElementById().innerHTML
AH, j'ai corrigé ca entre temps.
J'ai mis l'id "texte" ici et dans le code html dans une div.
Attention à la sécurité crossdomain, pour tester en local je suis obligé de passer par mon serveur
Code:
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 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>Nouvelle page 1</title> <script type="text/javascript"> 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 } function bar(){ var xhr = getXhr() // On défini ce qu'on va faire quand on aura la réponse xhr.onreadystatechange = function(){ // On ne fait quelque chose que si on a tout reçu et que le serveur est ok if(xhr.readyState == 4 && xhr.status == 200){ alert('essai') document.getElementById('foo').innerHTML=xhr.responseText } } xhr.open("GET","test.txt",true); xhr.send(null); } </script> </head> <body onload="bar()"> <div id="foo"></div> </body> </html>
Bon début de réponse, je n'avais pas mis de return xhr.
Mais apres correction et refonte, toujours le meme probleme d'xhr null.
Ca m'enerve, je comprends vraiment pas pourquoi il ne veux pas.
Code:
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117 document.write('ATTENTION! Cette page n\'est qu\'en test pour le moment, ne pas s\'y fier pour l\'instant. '); document.write('<br/><br/>'); //Declatarion // var nbs = 12; //Fonction de récupération du texte de licence // function getxhr() { var xhr = null; if( window.HTMLHttpRequest ) //Firefox // { xhr = new XMLHttpRequest(); } else if( window.ActiveXObject ) //IE// { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } else { document.write('<b> <font color="#FF0000"> Votre navigateur ne prend pas en charge la fonction désirée </font> </b>'); } return xhr; } //Programme // if(nbs == null) { document.write('Aucune donnée n\a été enregistrée'); } else { //Declaration des variables // var nbs_total = 982 var nbs_used = 235 var nbs_licensed = 412 var nbs_free = nbs_total - ( nbs_used + nbs_licensed ) //DEBUT DU PROGRAMME // // Création du tableau // document.write('<table border="0" bgcolor="#000000" width="90%" cellspacing="0" height=300>'); var i = 0; while(i < nbs) { document.write('<tr>'); // Détermination du rapport utilisé/licence // if(nbs_used > nbs_licensed) { var nbs_free = nbs_total - ( nbs_used + nbs_licensed ) var pct_licensed = ( nbs_used - nbs_licensed ) /nbs_total *100 var pct_used = ( nbs_used / nbs_total ) *100 var pct_free = ( (nbs_total - (nbs_used + (nbs_used - nbs_licensed))) / nbs_total ) *100 document.write(' <td bgcolor="#FFFFCC" width="',pct_used , '%"> <font color="#000000" > <div "align="center">',nbs_used, '</div> </font> </td>'); document.write(' <td bgcolor="#FF0000" width="',pct_licensed,'%"> <font color="#FFFFFF"> <div align="center">', pct_licensed, '</div> </font> </td>'); } else { var pct_used = ( nbs_used / nbs_total ) * 100 var pct_licensed = ( nbs_licensed - nbs_used )/ nbs_total * 100 var pct_free = ( (nbs_total - (nbs_used + ( nbs_licensed - nbs_used ))) / nbs_total ) *100 document.write(' <td bgcolor="#FFFFCC" width="',pct_used, '%"> <font color="#000000" > <div "align="center">',nbs_used, '</div> </font> </td>'); document.write(' <td bgcolor="#CC3366" width="', pct_licensed , '%"> <font color="#FFFFFF"> <div align="center">', nbs_licensed - nbs_used, '</div> </font> </td>'); } document.write(' <td bgcolor="#9966FF" width="', pct_free, '%"> <font color="#FFFFFF"> <div align="center">', nbs_free, '</div> </font> </td>'); document.write(' <tr height="1"> <td bgcolor="black" colspan="3" border="0"> <td></tr>'); document.write(' </tr>'); i++ } document.write('<tfoot> <tr> <td colspan="3"> <img src="images/tableau_histo/pourcent.jpg" width="100%" </tr> </tfoot>'); document.write('</table>'); //Test des pourcentages // document.write( 'Pourcentage utilisé: ',parseInt(pct_used) ,"% <br/>"); document.write( 'Pourcentage sous licence: ',parseInt(pct_licensed) ,"% <br/>"); document.write( 'Pourcentage libre: ',parseInt(pct_free) ,"% <br/> <br/> <br/>"); } var xhr = getxhr() xhr.open("GET", 'test.txt', true); document.getElementById(texte).innerHTML = xhr.responseText;
essaye de virer tous les document.write ...
Promsi je m'en occuperais des que cela marche, mais pour le moment je ne peux pas me le permettre, le temps commence a me presser de plus en plus a vrai dire.
Mais des que le programmes est a peu pres fonctionnel, je refais le code de manere optimisée.
tu testes en ligne ou en local ?
ton serveur est casesensitive ? casse du nom de fichier ?
le repertoire est partagé ? tu as les droits en lecture sur le fichier ?
Tout en local.
Comme je l'ai dit, il ny'a pas de serveur, ce n'est pas un site, c'est un portail et donc par consequent tout doit s'effectuer en local.
C'est pour ca que je galere, sinon j'avais juste a copier et coller les codes si vraiment je ne trouvais pas (ce qui est le cas actuellement)
tu dois avoir un serveur en local, sinon il considère que l'ajax est cross domaine
Avoir un serveur en local... C'est a dire?
que le poste sur lequel se trouve le fichier soit un serveur web et que l'on y accède par la racine du serveur ...
Bon.
Je ne sais pas faire ca, et ce n'est pas mon poste donc j'ai des restrictions.
Je pense que je vais esayer de trouver un autre moyen, ca s'avere bien compliqué de cette facon.
???
comment peut peut on espérer faire un portail web sans serveur web ???
Je ne sais pas trop comment dire, mais ce n'est pas le portail d'un site web, mais juste une page internet pour afficher le graphique que je souhaite faire.
tu peut juste afficher le texte avec une balise objectmais pas en exploiter le contenuCode:
1
2
3 <object id="foo" data="test.txt" type="text/plain" width="300" height="200"> </object>
C'est le probleme que je rencontre justement, j'affiche le texte avec un object, mais comme tu dis impossible de l'exploiter.
un debut de piste:
testé sous IE et ffx
reste plus qu'a parser avec des regExpCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>Nouvelle page 1</title> <script type="text/javascript"> function bar(){ alert(self.parent.foo.document.body.innerHTML) } </script> </head> <body onload="bar()"> <iframe name='foo' id="foo" src="test.txt" width="300" height="200"> </iframe> </body> </html>
on peut même mettre le display en none
C'est la méthode a laquelle je pensais a la base (pour ca que j'ai mentionné regexp), mais le probleme de chercher sur plusieurs lignes est toujours d'actualité :mrgreen: