Веб-сайт в iframe не находится в одном домене , но оба они мои, и я хотел бы установить связь между iframe
родительским сайтом и. Является ли это возможным?
javascript
html
ajax
iframe
Дэнни Фокс
источник
источник
window.onmesage = function()...
. Вwindow.top.postMessage('hello', '*')
file://C:/Windows/system32/whatever
на веб-страницу и указать ее прямо в системной папке пользователя. В наши дни браузеры в основном игнорируют нажатия на подобные ссылки. Запустите веб-сервер и получите доступ к своему коду через него, и вы увидите сообщение об ошибках.window.frames[index]
чтобы получить child frame (<iframe>, <object>, <frame>
), эквивалентныйgetElementsByTagName("iframe")[index].contentWindow
. Чтобы получить объект родительского окна из IFrames, его лучше использоватьwindow.parent
, так как онwindow.top
представляет собой верхнее родительское окноЭто должно быть здесь, потому что принят ответ с 2012 года
В 2018 и современных браузерах вы можете отправлять пользовательское событие из iframe в родительское окно.
IFrame:
родитель:
PS: Конечно, вы можете отправлять события в противоположном направлении одинаково.
источник
dispatchEvent
поддерживается во всех основных браузерах. IE9 была первой версией, в которой он появился, поэтому большинство ОС теперь работают с ним. caniuse.com/#search=dispatchEventЭта библиотека поддерживает HTML5 postMessage и устаревшие браузеры с изменением размера + хеш https://github.com/ternarylabs/porthole
Изменить: Теперь в 2014 году, использование IE6 / 7 довольно низкое, IE8 и, прежде всего, поддержка,
postMessage
поэтому я предлагаю просто использовать это.https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage
источник
window.top
собственность должна быть в состоянии дать то , что вам нужно.Например
См. Http://cross-browser.com/talk/inter-frame_comm.html
источник
Вы также можете использовать
postMessage(message, '*')
;источник
Используйте
event.source.window.postMessage
для отправки обратно отправителю.Из Ифраме
Тогда от родителя скажи обратно.
источник