Bonjour
J'ai suivi un tutorial de mozilla (voir ici) pour apprendre à utiliser Ajax. Malheureusement, il y a un problème bizarroïde que je n'arrive pas à résoudre. Voici le code :
Vous remarquez déjà qu'il y a à un moment un </script>, suivi par une nouvelle balise d'ouverture de script exactement pareil que celle d'avant. Normalement je ne devrais pas avoir besoin de faire ça (d'ailleurs dans l'exemple du tutorial, ils ne l'ont pas mis). Mais en l'enlevant, je ne peux plus faire appel à la première fonction (si je fais alert("test");makeRequest("www.google.fr") je verrai bien l'alerte, mais la fonction makeRequest ne sera pas exécuté.
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
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 <script type="text/javascript" language="javascript"> function makeRequest(url) { var http_request = false; if (window.XMLHttpRequest) { // Mozilla, Safari, ... http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) { http_request.overrideMimeType('text/xml'); // See note below about this line } } else if (window.ActiveXObject) { // IE try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!http_request) { alert('Giving up :( Cannot create an XMLHTTP instance'); return false; } http_request.onreadystatechange = function() { alert(url); alertContents(http_request); }; http_request.open('GET', url, true); http_request.send(null); } </script> <script type="text/javascript" language="javascript"> function alertContents(http_request) { alert("test2"); <script type="text/javascript" language="javascript"> function makeRequest(url) { var http_request = false; if (window.XMLHttpRequest) { // Mozilla, Safari, ... http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) { http_request.overrideMimeType('text/xml'); // See note below about this line } } else if (window.ActiveXObject) { // IE try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!http_request) { alert('Giving up :( Cannot create an XMLHTTP instance'); return false; } http_request.onreadystatechange = function() { alert(url); alertContents(http_request); }; http_request.open('GET', url, true); http_request.send(null); } </script> <script type="text/javascript" language="javascript"> function alertContents(http_request) { alert("test2"); <!--if (http_request.readyState == 4) { if (http_request.status == 200) { var output = http_request.responseText; var temp = new Array(); temp = output.split("LISTOFSR"); output = temp[1]; alert(output); temp = output.split("---"); for(var i = 0, i < temp.length(), i++) { document.forms.jiraform.menuSR.options[i]=new Option('i',temp[i]); alert(temp[i]); } } else { alert('There was a problem with the request.'); } }--> } </script>
Deuxième problème, l'appel à la fonction alertContents depuis makeRequest donne un résultat similaire: Je vois bien le alert(url), mais la fonction alertContents, qui est un simple alert("test2"), n'est pas exécuté. (A la base, alertContents est plutot la partie qui se trouve en commentaire. Et même en copiant/collant ces instruction à la place de l'appel à la fonction alertContents dans makeRequest, ça ne marche pas)
S'il vous plaît aidez moi :'(
Partager