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


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);


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM