2009-05-29 4 views
0

Ich habe einen iframe mit id "appframe", die Quelle ist page.html und es ist auf dem gleichen Server. Ich möchte die Quelle der Seite mit jQuery erhalten.Wie bekomme ich iframe-Verlinkung zur internen Dokumentquelle mit Javascript/jQuery?

alert($("#appframe").contents().find("html").html()); 

kehrt <head></head><body></body> obwohl das Dokument nicht die Tags enthält, enthält es nur „Standardseite“, so dass genau das, was sie zurückgeben sollte. Irgendeine Idee, wie man mit jQuery das richtige Quellskript des ganzen Dokuments bekommt?

Eg. Wenn das Dokument "Test" wäre, dann ist es genau das, was es zurückgeben sollte.

Bitte beachten Sie: Ich habe dies vor ein paar Wochen gefragt. Leider habe ich keine lösende Antwort. Wegen meiner geringeren Reputation (~ 85) kann ich kein Kopfgeld verlangen ... Das ergibt für mich keinen Sinn. Jedenfalls hat es mich gezwungen, diese Frage erneut zu stellen.

+0

möglich Duplikat [? Howto erhalten iframe Anbindung an interne Dokumentquelle mit Hilfe von JavaScript/jQuery] (http://stackoverflow.com/questions/872649/howto -get-iframe-linking-to-internal-Dokument-Quelle-Using-javascript-jquery) –

Antwort

1

Der Anruf an $("#appframe").contents().find("html").html() ruft ab, was innerhalb der <html></html> Tags sein sollte.

Wenn ein IFRAME nicht vollständig geladen wurde, wird das leere Feld <head></head></body></body> zurückgegeben, das andernfalls vorhanden sein sollte.

Wenn Sie den Aufruf innerhalb von $ (document) .ready() tätigen, ist der IFRAME möglicherweise nicht vollständig geladen. Versuchen Sie, den Anruf von innerhalb eines Klickereignisses zu tätigen.

Denken Sie daran, dass, wenn Ihr IFRAME Nur-Text enthält und Sie versuchen, seinen HTML-Code() zu erhalten, die oben genannten leeren Kopf- und Body-Tags enthalten, obwohl sie nicht existieren.

Wenn Sie nicht auf den gesamten HTML-Code im IFRAME zugreifen müssen, sollten Sie den ("body") .html() aufrufen, um den Inhalt zu erhalten. Versuchen Sie, diese Aufruf von innen eine Schaltfläche klicken Ereignis:

alert($("#appframe").contents().find("body").html());

Verwandte Themen