Die Website im Iframe befindet sich nicht in derselben Domain , aber beide gehören mir, und ich möchte zwischen der iframe
und der übergeordneten Site kommunizieren . Ist es möglich?
javascript
html
ajax
iframe
Danny Fox
quelle
quelle
window.onmesage = function()...
. Im iframe:window.top.postMessage('hello', '*')
file://C:/Windows/system32/whatever
auf eine Webseite setzen und ihn direkt in den Systemordner des Benutzers verweisen. Heutzutage ignorieren Browser Klicks auf solche Links meistens. Führen Sie einen Webserver aus und greifen Sie über diesen auf Ihren Code zu. Die Fehler werden angezeigt.window.frames[index]
, um child frame (<iframe>, <object>, <frame>
) zu erhalten, was äquivalent zu istgetElementsByTagName("iframe")[index].contentWindow
. Umwindow.parent
window.top
Es muss hier sein, da akzeptierte Antwort von 2012
In 2018 und modernen Browsern können Sie ein benutzerdefiniertes Ereignis vom Iframe an das übergeordnete Fenster senden.
iframe:
Elternteil:
PS: Natürlich können Sie Ereignisse auf die gleiche Weise in die entgegengesetzte Richtung senden.
quelle
dispatchEvent
dies in allen gängigen Browsern unterstützt wird. IE9 war die erste Version, die es gab, daher arbeiten die meisten Betriebssysteme jetzt damit. caniuse.com/#search=dispatchEventDiese Bibliothek unterstützt HTML5-PostMessage- und Legacy-Browser mit Resize + Hash https://github.com/ternarylabs/porthole
Bearbeiten: Jetzt im Jahr 2014 ist die IE6 / 7-Nutzung ziemlich gering, IE8 und vor allem Unterstützung,
postMessage
daher schlage ich jetzt vor, nur diese zu verwenden.https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage
quelle
Die
window.top
Unterkunft sollte in der Lage sein, das zu geben, was Sie benötigen.Z.B
Siehe http://cross-browser.com/talk/inter-frame_comm.html
quelle
Sie können auch verwenden
postMessage(message, '*')
;;quelle
Verwenden Sie
event.source.window.postMessage
diese Option, um an den Absender zurückzusenden.Von Iframe
Dann sagen die Eltern zurück.
quelle