如何在iframe和父站点之间进行通信?
iframe中的网站不在同一个域中 ,但都是我的,我想在iframe
和父网站之间进行通信。 可能吗?
对于不同的域,不可能直接调用方法或访问iframe的内容文档。
你必须使用跨文档消息 。
例如在顶部窗口中:
myIframe.contentWindow.postMessage('hello', '*');
并在iframe中:
window.onmessage = function(e){ if (e.data == 'hello') { alert('It works!'); } };
这个库支持HTML5的postMessage和传统的浏览器resize+哈希https://github.com/ternarylabs/port
编辑:现在在2014年,IE6 / 7的使用率是相当低的,IE8和以上都支持postMessage
所以我现在build议只使用它。
https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage
window.top
属性应该能够给你所需要的。
例如
alert(top.location.href)
你可以使用邮政API(邮政js /邮政xframe /邮政fedration)