为了账号安全,请及时绑定邮箱和手机立即绑定

postMessage报错

postMessage报错

神不在的星期二 2019-02-28 14:06:05
a页面通过iframe内嵌b页面,现在想把a页面的部分信息传递给b页面,使用postMessage 发现报错。https://segmentfault.com/a/11... 看到这个答案,试了一下发现还是报错demo.html:25 Failed to execute 'postMessage' on 'DOMWindow': 请问怎么解决?
查看完整描述

1 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

我在想,是不是因为你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";
这些都是我的想法而已,不喜勿喷,哈哈。。。

查看完整回答
反对 回复 2019-03-04
  • 1 回答
  • 0 关注
  • 470 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信