Ich möchte zu manipulieren das html innerhalb eines iframe mit jquery
Ich dachte, ich wäre in der Lage, das zu tun, indem es den Kontext des jQuery-Funktion das Dokument mit dem iframe, so etwas wie:
$(function(){//document ready
$('some selector', frames['nameOfMyIframe'].document).doStuff()
});
Allerdings scheint dies nicht zu funktionieren. Ein bisschen Inspektion zeigt mir, dass die Variablen in frames['nameOfMyIframe'] nicht definiert sind, es sei denn, ich eine Weile warten, für den iframe zu laden. Allerdings, wenn der iframe lädt die Variablen sind nicht zugänglich (bekomme ich permission denied Fehler).
Kennt jemand eine Möglichkeit dies zu umgehen?
- Es sieht aus wie du bist gebissen durch die same-Origin-Policy.
- Sie haben Kontrolle über das Dokument im iframe?
- Wenn Sie mit Berechtigung Fragen, gehe ich davon aus, dass der iFrame-Inhalt in einer Domäne, die Verschieden ist von der, wo Sie Ihren eigenen code, richtig? Wenn das so ist, Sie versuchen, etwas zu tun, durch design, kann nicht getan werden. Du musst schauen in die cross-domain-Javascript (siehe Hamidi ' s Kommentar). Hoffe, dies hilft Ihnen bei der Suche nach einer Richtung, um Ihr problem zu lösen. Wenn die beiden Ihrer Seite und der iFrame-Inhalte in der gleichen Domäne sind, dann vergesst, was ich gerade sagte.
- Vielleicht suchen Sie auch
.contents()
? - so ist es eine Möglichkeit, dies zu tun?
- exakte Kopie von stackoverflow.com/questions/364952/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der einzige "workaround", wenn Sie nicht machen die andere Seite die relevanten CORS-Header, wäre zu Holen, die das iframe-content-server-Seite und servieren Sie es als käme es aus Ihrer eigenen Domäne.
Der Grund, warum es nicht einfacher workaround ist durch, warum gibt es diese same-origin-policy : zum Schutz der Nutzer.
können Sie nicht ausführen jeder Zugriff mit cross-domain-iframe
Wie oben erwähnt, Ihre Frage ist, was ist bekannt als die "same-Origin-Policy", die im wesentlichen ist ein Umfang-problem. Die Kommunikation zwischen inhärent separate html-Dokumente ist nicht legal. Es gibt jedoch workarounds für die verschiedenen Gelegenheiten, wo der iframe ist, die sich auf der gleichen Seite miteinander kommunizieren können mit der Hilfe von einem Drittanbieter-Vermittler, überprüfen Sie heraus dieses erstaunliche Lösung für ein Beispiel:
Ändern der Größe eines iframe auf Basis von content