看起来window.postMessage的意义在于允许托管在不同域上的窗口/框架之间的安全通信,但实际上在Chrome中似乎不是allow.
以下是场景:
- 嵌入一个<;iframe>;(域B*)上的页面中显示
src
- <;iframe>;最终主要是<;script>;标记,在执行结束时.
- 我叫windows .postMessage(some_datapage_on_A)
<;iframe&>肯定位于域B的上下文中,我已经确认该<;iframe&>中嵌入的javascript可以正确执行,并使用正确的值调用postMessage
.
我在Chrome中收到以下错误消息:
无法将消息发布到A. 收件人的来源是B.
下面是在A:上的页面中注册消息事件侦听器的代码:
window.addEventListener(
"message",
function (event) {
// Do something
},
false);
我还试着拨打window.postMessage(some_data, '*')
,但所有操作都是 suppress 错误.
我是不是错过了这里的要点,就是window.postMessage(.)不是为了这个?还是我做得太错了?
*Mime类型text/html,它必须保留