Ich möchte den HTML-Code innerhalb eines iframe mit jQuery manipulieren.
Ich dachte, ich wäre in der Lage, dies zu tun, indem Sie den Kontext der jQuery-Funktion, das Dokument des iframe, etwas wie sein:
$(function(){ //document ready
$('some selector', frames['nameOfMyIframe'].document).doStuff()
});
Dies scheint jedoch nicht zu funktionieren. Ein wenig Inspektion zeigt mir, dass die Variablen in frames['nameOfMyIframe']
sind undefined
es sei denn, ich warte eine Weile, bis der iframe geladen ist. Wenn der iframe jedoch geladen wird, sind die Variablen nicht zugänglich (ich erhalte permission denied
-Typ-Fehler).
Kennt jemand eine Lösung für dieses Problem?
3 Stimmen
Was enthält der iFrame - ist sein src auf einen anderen Bereich festgelegt?
0 Stimmen
Wenn es sich um einen anderen Bereich handelt, gibt es dann noch eine Möglichkeit, auf dessen Inhalt zuzugreifen oder ein Ereignis zu registrieren?
38 Stimmen
Nein, denn das wäre ein Cross-Site-Scripting, das aus Sicherheitsgründen verboten ist. Meine Lösung war die Verwendung eines Proxys: Ich habe den HTML-Code im IFRAME wortwörtlich über meine eigene Website eingespeist, so dass er aus Sicht des Browsers nicht mehr seitenübergreifend ist.
1 Stimmen
Es ist browserübergreifender zu verwenden
.contentWindow.document
als.document
über dieiframe
Element. Ich werde die obige Änderung vorschlagen.1 Stimmen
Eine Möglichkeit sind Chrome-Erweiterungen