Heim >Web-Frontend >js-Tutorial >Wie kann ich die domänenübergreifende Kommunikation zwischen einem IFrame und seiner übergeordneten Website aktivieren?

Wie kann ich die domänenübergreifende Kommunikation zwischen einem IFrame und seiner übergeordneten Website aktivieren?

Barbara Streisand
Barbara StreisandOriginal
2024-11-27 01:06:13297Durchsuche

How Can I Enable Cross-Domain Communication Between an IFrame and Its Parent Website?

Domänenübergreifende Kommunikation zwischen iFrames und übergeordneter Website

Wenn sich die Website eines Iframes auf einer anderen Domain befindet, erfolgt die direkte Kommunikation zwischen dem Iframe und der Die übergeordnete Website wird zu einer Herausforderung. Dokumentübergreifendes Messaging kann diese Lücke jedoch schließen.

Parent-to-Iframe-Kommunikation

Im übergeordneten Fenster können Sie postMessage() verwenden, um Nachrichten an zu senden Das ContentWindow des Iframes:

myIframe.contentWindow.postMessage('hello', '*');

Auf der Iframe-Seite kann ein Onmessage-Ereignis das erfassen und verarbeiten Nachricht:

window.onmessage = function(e) {
    if (e.data == 'hello') {
        alert('It works!');
    }
};

Iframe-zu-Parent-Kommunikation

Um Nachrichten vom Iframe an das übergeordnete Fenster zu senden, können Sie postMessage() mit window.top verwenden als Ziel:

window.top.postMessage('hello', '*')

Im übergeordneten Fenster empfängt und verarbeitet das onmessage-Ereignis die Iframes Nachricht:

window.onmessage = function(e) {
    if (e.data == 'hello') {
        alert('It works!');
    }
};

Durch die Verwendung von dokumentübergreifendem Messaging können Sie eine bidirektionale Kommunikation zwischen einem Iframe aus einer anderen Domäne und seiner übergeordneten Website herstellen.

Das obige ist der detaillierte Inhalt vonWie kann ich die domänenübergreifende Kommunikation zwischen einem IFrame und seiner übergeordneten Website aktivieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn