2009-10-02 8 views
0

Comment puis-je interroger une chaîne que je reçois via $ .get? par exemple, je veux former google seulement le corps html:

$.get("www.google.com", function(data){ 
var body = $("body", data).html(); //This doesnt work 
}); 

Est-il encore possible? merci

+2

vous pourriez vouloir essayer d'ajouter 'http: //' à cela obtenir, cependant ... – peirix

Répondre

2

Non, jQuery ne peut pas accéder directement au DOM d'une page qui a été chargée via un XmlHttpRequest. Pour ce faire, vous devez utiliser un analyseur HTML écrit en JavaScript, comme the one that John Resig wrote. C'est toujours une tâche beaucoup plus difficile que ce à quoi vous vous attendiez probablement.

2

Une chose est que cela ne fonctionnera pas parce que vous avez besoin d'un analyseur HTML. L'autre est que, sauf si vous faites cela sur www.google.com cela ne fonctionnera pas à cause de la same origin policy. Il y a des manières de contourner ceci, la plus populaire est JSONP, mais ceci peut être fait aussi bien manuellement, sans utiliser la méthode jsonp définie par jQuery.

Edit:
Si vous ne voulez pas passer par les problèmes d'obtenir le contenu d'un autre domaine dans votre JavaScript, une méthode alternative serait d'utiliser votre serveur que ce soit, PHP, .NET ect à aller chercher la page distante et la renvoyer le JavaScript en utilisant AJAX. Cela prendra un peu plus de temps que de le faire directement dans le js, car vous faites 2 requêtes au lieu d'une. Cependant, en fonction de vos outils serveur, vous pouvez avoir plus de facilité à analyser le code HTML au lieu de le faire dans le fichier js, de sorte que vous pouvez plus facilement obtenir les éléments souhaités sur votre page.

+0

j'ai besoin de charger un fichier distant (un .aspx avec quelques chaînes de requête) et besoin du corps html de celui-ci. quelle autre manière y a-t-il de faire cela? – k0ni

Questions connexes