跨域打开页面:Uncaught DOMException: Blocked a frame with origin

两盒软妹~` 提交于 2020-02-28 15:30:42

Uncaught DOMException: Blocked a frame with origin

使用postMessage()方法可以解决跨域传值的问题
Api: https://developer.mozilla.org/zh-CN/docs/Web/API/Window/postMessage

父页面:

layer.open({
                skin: 'rocket',
                scrollbar: false,
                type: 2,
                title: 'test',
                shadeClose: true,
                area: ['50%', '50%'],
                content: url,//iframe的url
                btn:['保存'],
                btnAlign: 'c',
                yes: function(index, layero){
                    window[layero.find('iframe')[0]['name']].postMessage('addAndEdit', '*');
                    layer.close(index);
                },
                cancel: function(index, layero){
                    window[layero.find('iframe')[0]['name']].postMessage('addAndEdit', '*');
                    layer.close(index);
                }
            });
        

        function receiveMessage(event) {
            console.log(event.data)//取得子页面传回来的值
            var roomId = event.data;
            getSitUnitByRoomId(roomId)
        }

子页面:

// 跨域发送消息
        window.addEventListener('message',function(e){
            var value = e.data;
            //返回方法向父页面发送数据
            if (value != null && value == 'addAndEdit') {
                if (fangjianId) {
                    parent.postMessage(fangjianId, "*")
                }
            }
        }, false);
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!