长胖的小胖子
长胖的小胖子
  • 发布:2020-07-01 16:45
  • 更新:2020-07-02 11:58
  • 阅读:799

wkvebview下,页面里的iframe不能与parent通信,采用postmessage方式也不行

分类:HTML5+

wkvebview下,页面里的iframe不能与parent通信,采用postmessage方式也不行

由于做了页面插件,采用iframe的方式加载,但iframe里是没有plus对象的,所以想采用parent调用主窗口的plus对象(parent.plus),但调用 parent 时,会提示安全问题,origin为null

所以想采用postMessage方式的话,两边相互收不到消息,但在其它浏览器以及android打包测试中正常。
示例如下

A.html:


<iframe src="b.html"></iframe>  

<script>  

window.addEventListener('message', function(event) {  
    alert(event.data);  
});  

    setTimeout(function() {  
        try {  
            var frames = $('iframe');  
            for (var i = 0; i < frames.length; i++) {  
                var iframeWindow = frames[i].contentWindow;  
                iframeWindow.postMessage('test');  
            }  
        } catch (e) {  
            alert(e)  
            //TODO handle the exception  
        }  
    }, 1000);  
</script>

b.html


window.addEventListener('message', function(event) {  
    alert(event.data);  
});  

parent.postMessage('123');  

请问还有其它解决方案吗?

2020-07-01 16:45 负责人:DCloud_uniCloud_WYQ 分享
已邀请:
DCloud_uniCloud_WYQ

DCloud_uniCloud_WYQ

parent.postMessage('child message', '*')

该问题目前已经被锁定, 无法添加新回复