【发布时间】:2012-08-22 20:36:30
【问题描述】:
我已经看到了将数据发布到 iframe 的不同方法,但我找不到可以只发送 JSON 对象的方法。所有的方法似乎都需要我使用表单元素来放入我的数据。
【问题讨论】:
标签: javascript json http post iframe
我已经看到了将数据发布到 iframe 的不同方法,但我找不到可以只发送 JSON 对象的方法。所有的方法似乎都需要我使用表单元素来放入我的数据。
【问题讨论】:
标签: javascript json http post iframe
查看postMessage 并为您的消息使用 JSON.stringify 并在事件处理程序中使用 JSON.parse。
要实际发布到 iframe,您必须这样做
myIframe.contentWindow.postMessage(...)
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), '*');
}
【讨论】:
您可以使用Porthole JS 库。它将自己描述为一个“用于安全跨域 iFrame 通信的 JavaScript 库”。
如果可用,它会使用postMessage(),但对于不支持的浏览器,它会恢复为“隐藏代理”解决方法。
【讨论】: