2010-01-23 9 views
5

Ciò che è necessario è il seguente:Come ottenere informazioni da un altro sito Web dalla mia pagina HTML?

Ho una pagina Web HTML e ho bisogno di accedere a un altro sito Web e ottenere qualcosa dal suo codice sorgente.

voglio eseguire qualcosa di simile

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

per ottenere quello che mi serve dal link e usarlo!

Tuttavia, sto usando la barra di scorrimento di Jetpack.

Deve fare qualcosa con richieste HTTP?

risposta

1

Penso che si potrebbe tirare l'intera pagina utilizzando una richiesta Ajax, inserire il contenuto in un iframe nascosto e quindi manipolare il DOM nell'iframe. Qualcosa di simile (qui utilizzando il 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

funziona davvero? Ho provato ma ho ricevuto questo errore: 'XMLHttpRequest non può caricare http://www.google.com/. Origine http: // localhost: 9000 non è consentito da Access-Control-Allow-Origin. – Freewind

+1

Sì; Penso che fosse possibile, ma a causa di problemi di sicurezza tra siti penso che questo potrebbe non essere più consentito. Vorrei anche verificare l'utilizzo di un nome di dominio completo piuttosto che localhost. Questa potrebbe essere la causa del problema. –

0

Avere una pagina che avrà un risultato della query "doc.querySelectorAll ('# courses_menu> ul> li> a');"

Aggiungere un IFrame nella pagina, impostare il src come la pagina che ha il risultato sopra.

<iframe src='pagenamewhichhasresult'/>

+0

hai provato questo? Non penso che funzionerebbe a causa della stessa politica di origine. –

0

È possibile includere altri contenuti web nel documento HTML utilizzando un iframe. Tuttavia, a causa della stessa politica originale, non è possibile fare in modo che lo script del dominio influenzi il contenuto di un altro dominio. In altre parole, non puoi scrivere qualche javascript per manipolare il contenuto di qualche altra pagina web che hai inserito in un iframe. Lo script dovrebbe venire anche da quel dominio.

1

mi consiglia di utilizzare un Ajax (ad esempio jQuery) con un proxy PHP sullo stesso server web. Il proxy carica la pagina Web remota ed è quindi disponibile nello stesso dominio.

Non dimenticare di proteggere il proxy contro gli abusi.