将JSON对象发布到iFrame

时间:2012-08-22 20:36:30

标签: javascript json http post iframe

我已经看到了将数据发布到iframe的不同方法,但我找不到可以发送JSON对象的方法。所有方法似乎都要求我使用表单元素来放入我的数据。

2 个答案:

答案 0 :(得分:4)

查看postMessage并在事件处理程序中使用JSON.stringify作为消息和JSON.parse。

要实际发布到iframe,您必须

myIframe.contentWindow.postMessage(...)

fiddle

HTML

<button onclick="_sendMessage ()">Send</button>
<iframe src="" id="myIframe">​

的javascript

var myIframe = document.getElementById('myIframe');
myIframe.contentWindow.addEventListener('message', function(event) {
    console.log(JSON.parse(event.data));
}, false);


window._sendMessage = function() {
    var json = {payload:'Hello World'};
    myIframe.contentWindow.postMessage(JSON.stringify(json), '*');
}​

答案 1 :(得分:0)

您可以使用Porthole JS库。它将自己描述为“用于安全跨域iFrame通信的JavaScript库”

它使用postMessage()(如果可用),但对于不支持的浏览器,将恢复为“隐藏代理”解决方法。