2010-01-23 8 views
5

Ce qui est nécessaire est la suivante:Comment obtenir des informations d'un autre site depuis ma page HTML?

J'ai une page Web HTML et j'ai besoin d'accéder à un autre site Web et d'obtenir quelque chose de son code source.

Je veux lancer quelque chose comme

link = "http://www.google.com"; 
doc.querySelectorAll('#courses_menu > ul > li > a'); // Apply on the link. 

pour obtenir ce que je dois à partir du lien et de l'utiliser! Cependant, j'utilise la barre coulissante Jetpack. Est-ce qu'il doit faire quelque chose avec des requêtes HTTP?

Répondre

1

Je pense que vous pourriez tirer la page entière en utilisant une requête Ajax, mettre le contenu dans un iframe caché, puis manipuler le DOM dans l'iframe. Quelque chose comme (ici en utilisant le framework jQuery)

<iframe id="holder" style="display: none"> 

<script type="text/javascript"> 
$("#holder").load("http://www.google.com",function() { 
    $link = $("#holder").contents().find("#courses_menu > ul > li > a"); 
}); 
</script> 
+0

cela fonctionne-t-il vraiment? J'ai essayé mais obtenir une telle erreur: 'XMLHttpRequest ne peut pas charger http://www.google.com/. Origine http: // localhost: 9000 n'est pas autorisé par Access-Control-Allow-Origin. – Freewind

+1

Oui; Je pense que c'était possible, mais en raison de problèmes de sécurité inter-sites, je pense que cela ne serait plus autorisé. Je vérifie également en utilisant un nom de domaine complet plutôt que localhost. Cela pourrait être la cause du problème. –

0

Avoir une page qui aura pour résultat votre requête "doc.querySelectorAll ('# courses_menu> ul> li> a');"

Ajoutez un IFrame dans votre page, définissez le src comme la page qui a le résultat ci-dessus.

<iframe src='pagenamewhichhasresult'/>

+0

avez-vous essayé? Je ne pense pas que cela fonctionnerait en raison de la même politique d'origine. –

0

Vous pouvez inclure d'autres contenus du site dans votre document html en utilisant un iframe. Toutefois, en raison de la même stratégie d'origine, vous ne pouvez pas avoir de script de votre domaine affectant le contenu d'un autre domaine. En d'autres termes, vous ne pouvez pas écrire du javascript pour manipuler le contenu d'une autre page Web que vous avez mise dans un iframe. Le script devrait également provenir de ce domaine.

1

Je recommande d'utiliser un Ajax (par exemple jquery) avec un proxy PHP sur le même serveur Web. Le proxy charge la page Web distante et est ensuite disponible sous le même domaine. Ne pas oublier de protéger le proxy contre les abus.