Zusammenfassung der Funktionsweise von JS auf Seiten innerhalb und außerhalb von Iframes

Zusammenfassung der Funktionsweise von JS auf Seiten innerhalb und außerhalb von Iframes

Holen Sie sich den Inhalt des Iframes außerhalb des Iframes

Methode 1

Über die beiden APIs contentWindow und contentDocument:

var iframe = document.getElementById("iframe1");
var iwindow = iframe.contentWindow;
var idoc = iwindow.document;
var idocument = iframe.contentDocument;
console.log("window",iwindow); //Holen Sie sich das Fensterobjekt des Iframes console.log("document",idoc); //Holen Sie sich das Dokument des Iframes
console.log("html",idoc.documentElement);//Holen Sie sich das HTML des Iframes

Darunter kann iframe.contentWindow das Fensterobjekt von iframe abrufen und iframe.contentDocument das Dokumentobjekt von iframe abrufen.

Methode 2

In Kombination mit dem Attribut „Name“ erhalten Sie es über die vom Fenster bereitgestellten Rahmen:

<iframe src ="/index.html" id="ifr1" name="ifr2" scrolling="ja">
  <p>Ihr Browser unterstützt keine Iframes.</p>
</iframe>
<Skripttyp="text/javascript">
    Konsole.log(Fenster.Frames['ifr2'].Fenster);
    console.dir(document.getElementById("iframe").contentWindow);
</Skript>

Holen Sie sich Inhalte außerhalb des Iframes innerhalb des Iframes

window.parent ruft das Fensterobjekt der vorherigen Ebene ab. Wenn es immer noch ein Iframe ist, ist es das Fensterobjekt des Iframes.
window.top ruft das Fensterobjekt des Containers der obersten Ebene ab, also das Dokument der Seite, die Sie geöffnet haben

Aufrufen von Methoden und Variablen, die auf der übergeordneten Seite im Iframe definiert sind

Fenster.übergeordnet.Fenster.übergeordneteMethode();
Fenster.übergeordnet.Fenster.übergeordneterWert;

Methoden und Variablen zum Bedienen von Iframe-Unterseiten auf der übergeordneten Seite

window.frames["iframe_Name"].window.childMethod();
Fenster.Frames["iFrame_Name"].Fenster.Unterwert;

Zusammenfassen

Beim Einsatz von Iframe sind noch zwei weitere Punkte zu beachten:

  1. Stellen Sie sicher, dass Sie Vorgänge ausführen, nachdem das Iframe geladen wurde. Wenn Sie Methoden oder Variablen innerhalb des Iframes aufrufen, bevor dieser geladen wurde, tritt ein Fehler auf.
  2. Wenn der Iframe auf eine externe Seite verweist, kann der Sicherheitsmechanismus die Kommunikationsmethode nicht unter demselben Domänennamen verwenden.

Ermitteln, ob das Laden des Iframes abgeschlossen ist

iframe.onload = Funktion() {
    //ZU TUN
}

Kommunikation in unterschiedlichen Domänen

Übergeben von Daten von der übergeordneten Seite an die untergeordnete Seite

Verwenden Sie den Hashwert des Standortobjekts, um Kommunikationsdaten hindurchzuleiten. Fügen Sie nach dem src des Iframes auf der übergeordneten Seite eine Datenzeichenfolge hinzu und rufen Sie die Daten dann hier sofort auf irgendeine Weise auf der untergeordneten Seite ab.

Unterseite übergibt Daten an übergeordnete Seite

Es wird ein Proxy-Iframe verwendet, der in die untergeordnete Seite eingebettet ist und sich in derselben Domäne wie die übergeordnete Seite befinden muss. Dann wird das oben erwähnte Implementierungsprinzip der Methode der Kommunikation in derselben Domäne vollständig genutzt, um die Daten der untergeordneten Seite an den Proxy-Iframe zu übergeben. Da sich der Proxy-Iframe und die Hauptseite in derselben Domäne befinden, kann die Hauptseite diese Daten mit derselben Domänenmethode abrufen.

Dies ist das Ende dieses Artikels darüber, wie JS auf Seiten innerhalb und außerhalb des Iframes ausgeführt werden kann. Weitere relevante Inhalte zum Ausführen von JS auf Iframe-Seiten finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • So führen Sie eine reibungslose if-Beurteilung in js durch
  • Implementierung einer vereinfachten Version von JSON.stringify und seine sechs Hauptfunktionen im Detail erklärt
  • Zusammenfassung der verschiedenen Verwendungsmöglichkeiten von JSON.stringify
  • Vue implementiert eine Online-Vorschau von PDF-Dateien (mithilfe von pdf.js/iframe/embed)
  • Zusammenfassung der Verwendung von JavaScript JSON.stringify()
  • Detaillierte Erläuterung zur Lösung des Zirkelreferenzproblems bei der Verwendung von JSON.stringify
  • Der Unterschied und die Verwendung von json.stringify() und json.parse()
  • Selenium+BeautifulSoup+json ruft die JSON-Daten im Script-Tag ab
  • Informationen zum Ausdruck „wenn Komma enthält“ in JavaScript

<<:  Auszeichnungssprachen – Nochmal auflisten

>>:  Problem mit Berechtigungen zum Ändern gespeicherter Prozeduren in MySQL

Artikel empfehlen

Detaillierte Erklärung der grundlegenden Verwendung des Linux-Debuggers GDB

Inhaltsverzeichnis 1. Übersicht 2. GDB-Debugging ...

Welche Vorteile bietet die Verwendung eines B+-Baums als Indexstruktur in MySQL?

Vorwort In MySQL verwenden sowohl Innodb als auch...

SQL-Implementierung von LeetCode (177. N-höchstes Gehalt)

[LeetCode] 177.N-höchstes Gehalt Schreiben Sie ei...

Detaillierte Verwendung des Kubernetes-Objektvolumens

Überblick Volume ist die Abstraktion und Virtuali...

Grundlegende Operationen der MySQL-Lernnotizentabelle

Tabelle erstellen Tabelle erstellen Tabellenname ...

So stellen Sie Confluence und Jira-Software in Docker bereit

Version: centos==7.2 jdk==1.8 Zusammenfluss == 6....

Detaillierte Erklärung des Prinzips des js-Proxys

Inhaltsverzeichnis Was ist der Proxy-Modus? Einfü...

Kostenlose Installationskonfigurationsmethode für MySQL 5.7.18 WinX64

1. Herunterladen 2. Dekompression 3. Fügen Sie di...

Lösung für MySQL 8.0 kann nicht gestartet werden 3534

Der MySQL 8.0-Dienst kann nicht gestartet werden ...

Detaillierte Erklärung zum Anpassen des Stils von CSS-Bildlaufleisten

Dieser Artikel stellt den CSS-Bildlaufleistensele...

Implementierung von webpack-dev-server zum Erstellen eines lokalen Servers

Inhaltsverzeichnis Vorwort Webpack-Deb-Server Sta...

Detaillierte Erklärung zur Verwendung von this.$set in Vue

Inhaltsverzeichnis Verwendung von this.$set in Vu...