2011-07-08 4 views
0
request.open("GET", selectedTab + ".html", true); 

Est-ce que cela me répondra avec toute la page html ou juste la partie de texte dans certains tags spécifiques. Si ma page html contient des images et des paragraphes, qu'est-ce qui va me revenir exactement dans mon objet de requête, et comment puis-je utiliser des balises individuelles (en utilisant javacript), si elle les renvoie toutes?Demande asynchrone

Par exemple, supposons que mon fichier html est

<!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” lang=”en” xml:lang=”en”> 
<head>  
<link type="text/css" href="something" rel="stylesheet"> 
</head> 
<body> 
<p>hello</p> 
<img src="something.jpg" /> 
</body> 
</html> 

maintenant comment puis-je obtenir les coponents individuels du fichier.

Répondre

1

Vous obtiendrez seulement le code HTML du fichier. Vous devrez analyser les éléments vous-même pour extraire tous les fichiers externes (css, js, etc.)

Édité pour répondre aux modifications (x2): Votre requête ajax obtiendra le code HTML, mais si vous voulez obtenir la feuille de style, ou l'image, vous devriez l'analyser. Par exemple (du haut de ma tête, pas complètement testé :)):

var iframe = document.createElement("iframe"); //creating dummy iframe to load html into in order to parse it. DOMParser is another option; 
iframe.innerHTML = response; //assuming response is the variable you stored the responseText from the AJAX request 
var doc = iframe.contentDocument //get the document property of the iframe 
var url = doc.getElementsByTagName("link")[0].href; //gets url of stylesheet 
var img = doc.getElementsByTagName("img")[0].src; //gets url of img 

Vous pouvez alors faire plus de demandes pour obtenir les éléments réels.

Si tout ce que vous voulez est d'obtenir les différents éléments, alors vous pouvez utiliser la technique doc.getElementsByTagName("p") pour obtenir des balises. Ou il existe d'autres méthodes DOM qui peuvent fonctionner mieux en fonction du HTML et du contexte.

+0

bien vouloir répondre aux modifications aussi! Merci. – Kraken

+0

ne l'obtiens toujours pas, normalement si je demande un objet nommé demande, et l'envoie au fichier php, et puis je veux une réponse textuelle du php, je l'echo là dedans, et obtient le texte dans mon dossier actuel par demande .responseText, maintenant dans votre réponse, qu'est-ce que iframe? et votre réponse est-elle équivalente à mon objet de requête? et que fait contentDocument? – Kraken

+0

ajouté plus de commentaires pour essayer de clarifier –

0

Je vous recommande d'utiliser la bibliothèque http://jquery.com/ pour vous aider à analyser les données renvoyées. Par exemple:

<script type="text/javascript"> 

$(function() { // just a document.ready wrapper 
    $.get(selectedTab + ".html", function(data) { 
     var parsedData = $(data); 
     var specificValue = $("#someID", parsedData); // any CSS selector will work in place of #someID 
    }); 
}); 

</script> 

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> 
Questions connexes