似乎window.postMessage的重点是允许在不同域中托管的Windows /框架之间进行安全的通信,但实际上似乎不允许在Chrome中进行。
这是场景:
- 在域A的页面中嵌入<iframe>(
src
域B *为) - <iframe>最终主要是一个<script>标记,在执行结束时...
- 我叫window.postMessage(some_data,page_on_A)
<iframe>绝对是在域B的上下文中,并且我已经确认<iframe>中的嵌入式javascript可以正确执行并postMessage
使用正确的值进行调用。
我在Chrome中收到以下错误消息:
无法发布消息到一个。收件人有产地乙。
这是在A页面上注册消息事件侦听器的代码:
window.addEventListener(
"message",
function (event) {
// Do something
},
false);
我也尝试调用window.postMessage(some_data, '*')
,但是所有要做的就是抑制错误。
我只是在这里遗漏了一点吗,window.postMessage(...)并非要这样做吗?还是我只是做错了什么?
* MIME类型的text / html,必须保留。