鍍金池/ 問答/HTML/ postMessage報錯

postMessage報錯

a頁面通過iframe內(nèi)嵌b頁面,現(xiàn)在想把a頁面的部分信息傳遞給b頁面,使用postMessage 發(fā)現(xiàn)報錯。

https://segmentfault.com/a/11... 看到這個答案,試了一下發(fā)現(xiàn)還是報錯

demo.html:25 Failed to execute 'postMessage' on 'DOMWindow': 請問怎么解決?

回答
編輯回答
陌離殤

我在想,是不是因為你iframe src里面指定的是你本地的html文件啊?我在網(wǎng)上看了一下,不知道是不是因為src里面的page需要是一個host在某個server上面的頁面才可以。當然這都是我的猜測,沒用過postMessage。。。
還有,如果你的src里面用的是本地html文件,相當于符合同源策略咯,應(yīng)該可以使用傳統(tǒng)的方式:
var iframe = document.getElementById('ifr'); //通過id獲取iframe
var ifrDoc = iframe.contentWindow.document; //通過iframe拿到iframe的document對象
然后可以通過iframe里面的document對象操作iframe頁面,比如:ifrDoc.getElementById('someId').innerHTML = "someValue";
這些都是我的想法而已,不喜勿噴,哈哈。。。

2018年7月19日 18:07