2010-01-23 3 views
5

Was benötigt wird, ist wie folgt:Wie bekomme ich Informationen von einer anderen Website von meiner HTML-Seite?

Ich habe eine HTML-Webseite und ich muss auf eine andere Website zugreifen und etwas aus dem Quellcode erhalten.

Ich möchte so etwas wie laufen

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

zu bekommen, was ich von der Verbindung benötigen und nutzen Sie es!

Aber ich bin mit Jetpack Schieberegler.

Muss es etwas mit HTTP-Anfragen tun?

Antwort

1

Ich denke, Sie könnten die gesamte Seite mit einer Ajax-Anfrage ziehen, den Inhalt in einen versteckten Iframe stellen und dann das DOM im iframe manipulieren. So etwas wie (hier die jQuery-Framework)

<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

funktioniert das wirklich? Ich habe versucht, aber einen solchen Fehler zu bekommen: 'XMLHttpRequest kann http://www.google.com/ nicht laden. Origin http: // localhost: 9000 ist nicht erlaubt von Access-Control-Allow-Origin. – Freewind

+1

Ja; Ich denke, dass es früher möglich war, aber aufgrund von Sicherheitsproblemen vor Ort glaube ich, dass das nicht mehr erlaubt ist. Ich würde auch prüfen, einen voll qualifizierten Domain-Namen anstelle von localhost verwenden. Das könnte die Ursache des Problems sein. –

0

Haben Sie eine Seite, die ein Ergebnis der Abfrage haben "doc.querySelectorAll ('# courses_menu> ul> li> a');"

einen IFrame auf Ihrer Seite hinzufügen, stellen Sie die src als die Seite, die das obige Ergebnis hat. unter Verwendung eines iframe

<iframe src='pagenamewhichhasresult'/>

+0

haben Sie versucht das? Ich glaube nicht, dass dies aufgrund der gleichen Herkunftsrichtlinie funktionieren würde. –

0

Sie können andere Website-Inhalte in Ihrem HTML-Dokument enthalten. Aufgrund derselben ursprünglichen Richtlinie können Sie jedoch nicht festlegen, dass sich Skript aus Ihrer Domain auf Inhalte einer anderen Domain auswirkt. Mit anderen Worten, Sie können kein Javascript schreiben, um den Inhalt einer anderen Webseite, die Sie in einen Iframe einfügen, zu manipulieren. Das Skript müsste auch von dieser Domain kommen.

1

ich empfehlen die Verwendung eines Ajax (z jquery) mit einem PHP-Proxy auf demselben Webserver. Der Proxy lädt die entfernte Webseite und ist dann unter derselben Domäne verfügbar.

Vergessen Sie nicht, den Proxy vor Missbrauch zu schützen.

Verwandte Themen