a页面通过iframe内嵌b页面,现在想把a页面的部分信息传递给b页面,使用postMessage 发现报错。
https://segmentfault.com/a/11... 看到这个答案,试了一下发现还是报错
demo.html:25 Failed to execute 'postMessage' on 'DOMWindow': 请问怎么解决?
a页面通过iframe内嵌b页面,现在想把a页面的部分信息传递给b页面,使用postMessage 发现报错。
https://segmentfault.com/a/11... 看到这个答案,试了一下发现还是报错
demo.html:25 Failed to execute 'postMessage' on 'DOMWindow': 请问怎么解决?
8 回答5.8k 阅读✓ 已解决
9 回答9.2k 阅读
6 回答4.7k 阅读✓ 已解决
5 回答3.5k 阅读✓ 已解决
4 回答7.9k 阅读✓ 已解决
7 回答9.8k 阅读
5 回答7.1k 阅读✓ 已解决
我在想,是不是因为你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";
这些都是我的想法而已,不喜勿喷,哈哈。。。