Как общаться между iframe и родительским сайтом?
веб-сайт в iframe не находится в том же домене, но оба мои, и я хотел бы общаться между iframe
и родительский сайт. Возможно ли это?
3 ответов
С различными доменами невозможно вызвать методы или получить доступ к содержимому документа iframe напрямую.
вы должны использовать обмен сообщениями между документами.
например в верхнем окне:
myIframe.contentWindow.postMessage('hello', '*');
и в iframe:
window.onmessage = function(e){
if (e.data == 'hello') {
alert('It works!');
}
};
эта библиотека поддерживает HTML5 postMessage и устаревшие браузеры с resize+hash https://github.com/ternarylabs/porthole
Edit: теперь в 2014 году использование IE6 / 7 довольно низкое, IE8 и прежде всего поддержка postMessage
поэтому я предлагаю просто использовать это.
https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage
на window.top
собственность должны быть в состоянии дать то, что вам нужно.
Е. Г.
alert(top.location.href)
посмотреть http://cross-browser.com/talk/inter-frame_comm.html