标签:javascript postmessage dispatchevent
我有这个代码,我已将MessageEvent的原点设置为*,但仍然控制台提示阻止具有原点“AAAA”的帧访问具有原点“BBBB”的帧.协议,域和端口必须匹配.谁知道为什么?
var size = {
width: document.body.scrollWidth,
height: document.body.scrollHeight
}
var evt = new MessageEvent("dimensionMessage",{
"data": size,
"origin":"*"
});
window.parent.dispatchEvent(evt);
但是,如果我使用window.parent.postMessage(size,“*”),它可以工作.
解决方法:
错误消息告诉您,如果一个方法位于不同的原点,则它通常不能从父级调用方法;包括dispatchEvent方法(否则,iframe可以在父页面中生成鼠标事件).
postMessage API是一个例外,它精确地设计为允许以明确定义的方式进行跨源通信.
(将原点设置为’*’对您没有帮助;通常,当通过postMessage发送消息时,该属性应由浏览器设置;手动创建MessageEvent对象通常仅在您想要模拟时才有用接收页面接收外部消息)
标签:javascript,postmessage,dispatchevent 来源: https://codeday.me/bug/20190527/1166104.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。