postMessage报错

a页面通过iframe内嵌b页面,现在想把a页面的部分信息传递给b页面,使用postMessage 发现报错。

https://segmentfault.com/a/11... 看到这个答案,试了一下发现还是报错

demo.html:25 Failed to execute 'postMessage' on 'DOMWindow': 请问怎么解决?

阅读 3.3k
1 个回答

我在想,是不是因为你iframe src里面指定的是你本地的html文件啊?我在网上看了一下,不知道是不是因为src里面的page需要是一个host在某个server上面的页面才可以。当然这都是我的猜测,没用过postMessage。。。
还有,如果你的src里面用的是本地html文件,相当于符合同源策略咯,应该可以使用传统的方式:
var iframe = document.getElementById('ifr'); //通过id获取iframe
var ifrDoc = iframe.contentWindow.document; //通过iframe拿到iframe的document对象
然后可以通过iframe里面的document对象操作iframe页面,比如:ifrDoc.getElementById('someId').innerHTML = "someValue";
这些都是我的想法而已,不喜勿喷,哈哈。。。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏