Heim >Web-Frontend >js-Tutorial >Wie kann ich von einer anderen Domain aus auf den Inhalt eines iFrames zugreifen?
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>
Hauptseite (example.com):
<script> window.onmessage = function(event) { alert(event.data); }; </script> <!-- Trigger the message sending --> <iframe>
document.getElementById('myframe').contentWindow.postMessage('', '*');
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!