跨域iframe问题

比如说,我有一个名为example.com的网站,其中iframeembedded了域名iframe.net,现在我想要读取iframe的内容并传递一些参数来显示文本消息。 喜欢与用户名。

现在的问题是,这两个之间无法build立连接,即使我无法获得我使用iframe的innerHTML方法

document.getElementById('myframe').contentWindow.document.body.innerHTML; 

它会抛出错误“权限被拒绝访问属性”

有谁知道如何读写跨平台的平台

如果您无法控制框架网站,则无法规避跨域策略。

如果您可以控制两个站点,则可以使用postMessage方法在不同的域之间传输数据。 一个非常基本的例子:

 // framed.htm: window.onmessage = function(event) { event.source.postMessage(document.body.innerHTML, event.origin); }; // Main page: window.onmessage = function(event) { alert(event.data); }; // Trigger: // <iframe id="myframe" src="framed.htm"></iframe> document.getElementById('myframe').contentWindow.postMessage('','*'); 

Internet Explorer 8中,作为parameter passing的事件可能为 ,这就是为什么您需要以不同的方式访问事件:

frame.html中

 window.onmessage = function(event) { var evt = evt || window.event; evt.source.postMessage('Message from iFrame', evt.origin); }; 

main.html上

 window.onmessage = function(event) { var evt = evt || window.event; alert(evt.data); }; 

事件的触发方式与Rob W所提供的相同:

 document.getElementById('frameId').contentWindow.postMessage('message','*');