Heim > Web-Frontend > js-Tutorial > Wie kann ich von einer anderen Domain aus auf den Inhalt eines iFrames zugreifen?

Wie kann ich von einer anderen Domain aus auf den Inhalt eines iFrames zugreifen?

DDD
Freigeben: 2024-12-23 15:04:14
Original
249 Leute haben es durchsucht

How Can I Access an iFrame's Content from a Different Domain?

Domänenübergreifender iFrame-Zugriff: Eine Lösung

Wenn Sie versuchen, von einer anderen Domäne aus auf den Inhalt eines iFrames zuzugreifen, kann es vorkommen, dass ein Problem auftritt Fehler „Berechtigung zum Zugriff auf die Eigenschaft verweigert“. Dieses Problem entsteht aufgrund der domänenübergreifenden Richtlinie des Browsers, die aus Sicherheitsgründen den Datenaustausch zwischen Domänen einschränkt.

Um diese Einschränkung zu überwinden, können Sie die postMessage-Methode verwenden, die verfügbar ist, wenn Sie die Kontrolle über beide Framing-Sites haben und der Inhalt des iFrames. Mit dieser Methode können Sie Nachrichten zwischen den verschiedenen Domänen senden und empfangen.

Hier ist eine Beispielimplementierung:

Gerahmte Site (iframe.net):

<script>
  window.onmessage = function(event) {
    event.source.postMessage(document.body.innerHTML, event.origin);
  };
</script>
Nach dem Login kopieren

Hauptseite (example.com):

<script>
  window.onmessage = function(event) {
    alert(event.data);
  };
</script>

<!-- Trigger the message sending -->
<iframe>
Nach dem Login kopieren
document.getElementById('myframe').contentWindow.postMessage('', '*');
Nach dem Login kopieren

Die postMessage-Methode benötigt zwei Argumente: die zu sendende Nachricht und den Zielursprung (die Domäne, die die Nachricht empfangen soll). In diesem Beispiel verwenden wir „*“, um anzugeben, dass die Nachricht von jeder Domain empfangen werden kann.

Wenn dieser Code ausgeführt wird, wird die Nachricht, die den Text des iFrame enthält, von der Frame-Site an die Hauptseite gesendet Seite, wo es in einem Warnfeld angezeigt wird. Dies zeigt, wie Sie die domänenübergreifende Richtlinie umgehen und mithilfe der postMessage-Methode Daten zwischen den beiden Domänen austauschen können.

Das obige ist der detaillierte Inhalt vonWie kann ich von einer anderen Domain aus auf den Inhalt eines iFrames zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage