|
|
|
|
Bonjour,
J'essaye de récupérer le contenu d'une page html à l'aide XMLHttpRequest.
J'ai donc créé une fonction GetArticle() dans laquelle je retourne le contenu de la page html.
Malheuresement cela ne fonctionne pas...
[code]
function GetArticle() {
var Ou;
var req = null;
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
}else if (window.ActiveXObject) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
}catch (e){
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
}catch (e) {
}
}
}
req.onreadystatechange = function() {
if(req.readyState == 4) {
if(req.status == 200) {
document.getElementById(Ou).innerHTML=req.responseText;
}else{
}
}
};
req.open("GET", "article.html" , true);
req.send(null);
return Ou;
}
/code
J'appel ensuite cette fonction:
[code]
art_content = GetArticle();
/code
Et j'ai comme valeur "Undefined". Alors que lorsque je rentre en "dur" une valeur de "Ou" dans la fonction GetArticle(), elle s'affiche correctement.
Quelqu'un voit-il mon erreur?
Merci!
Laurent
Configuration: Windows XP Firefox 3.0.10
Salut,
Ou = req.responseText; Devrait déjà mieux fonctionner... Si j'ai bien compris ce que tu voulais faire !... Un conseil, si tu utilises Firefox, je te conseille fortement le module Firebug, qui permet de débogger rapidement, et facilement des applications Javascript. Enfin, si il s'agit d'un développement pour un client ou une entreprise, je te conseille vivement d'utiliser une librairie toute faite pour faire des requêtes asynchrones, comme jquery par exemple... Bien sur, si c'est juste pour faire des tests et voir comment ça fonctionne, dans ce cas, continue comme ça tu y es presque à mon avis ! Amicalement, S@M |
Ok merci!
|
Re,
<html>
<body>
<script type="text/javascript">
function GetArticle() {
var Ou;
var req = null;
// Création de l'objet
if (window.XMLHttpRequest)
{
req = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
try
{
req = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
}catch (e) {}
}
}
// Sur changement d'etat
req.onreadystatechange = function()
{
if(req.readyState == 4)
{
// Pour débug...
alert( req.responseText );
Ou = req.responseText;
}
};
req.open("GET", "article.html" , true);
req.send(null);
return Ou;
}
GetArticle();
</script>
</body>
</html>
Amicalement, S@M... |
Ah merci! J'ai trouvé une piste grâce à ton alert() de debug.
|
Re,
<html>
<head>
<script type="text/javascript">
// Fonction d'affichage du prix (lorsque cette fonction est appelée, on est sur que l'article a été récupéré !)
function DisplayArticle( Article )
{
// On fait ce que l'on veut avec Article... par exemple l'afficher via un élément du DOM...
document.getElementById('Article').innerHTML = Article;
}
</script>
</head>
<body>
<div>Votre article est : <span id="Article"></span></div>
<script>
// Création de l'objet
var req = null;
if (window.XMLHttpRequest) { req = new XMLHttpRequest(); }
else if (window.ActiveXObject) {
try { req = new ActiveXObject("Msxml2.XMLHTTP"); }
catch (e) { try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} }
}
// Sur changement d'etat
req.onreadystatechange = function()
{
if( req.readyState == 4 ) { DisplayArticle( req.responseText ); }
};
// Execution de la requète
req.open("GET", "article.html" , true);
req.send(null);
</script>
</body>
</html>
En esperant t'avoir dépanné !... Amicalement, S@M... |
Ok! Merci pour ta réponse.
function initDragableBoxesScript()
{
GetArticle();
createDefaultBoxes();
}
Ma fonction createDefaultBoxes() a besoin du résultat de GetArticle. Comment puis-je faire pour être sûr que createDefaultBoxes attende le retour de GetArticle(requête XMLHttpRequest)? Cela fonctionnerait-il avec un flag mis à 1 en confirmation de retour de la requete et un if testant ce flag comme condition de l'execution de createDefaultBoxes? Merci! Laurent |