解决iframe的跨域问题

解决 Uncaught DOMException: Blocked a frame with origin "http://localhost" from accessing a cross-origin frame.

主页面加上监听,用于父页面与子页面的交互
window.addEventListener(‘message’,msgHandler,false);
function msgHandler(e) {
console.log('main 主页面收到数据, msg.recv: '); //testing
console.log(e); //testing
currentSource = e.source;
console.log(currentSource);
currentOrigin = e.origin;
var data = JSON.parse(e.data);
switch(data.cmd) {
case ‘3D_INIT’:
send_3d_init_info();
break;
case ‘ROUTENET_MANAGE’: //3D页面请求航路网管理页面的相关数据
send_3d_routenet_manage();
break;
default:
console.error(“main 无法解析的消息”);
break;
}
}

子页面初始化就向父页面发送数据请求
$(document).ready(function(){
console.log(“window.location.href: “);
console.log(window.location.href);
var pageType=window.location.href.split(”=”)[1];
//初始化cesium
initCesium();

    //通知主页面发送数据
    window.addEventListener('message',msgHandler);

    if(pageType){
        switch (pageType) {
            case '3D_INIT':   //主页面
                var msg = {"cmd":"3D_INIT"};
                window.parent.postMessage(JSON.stringify(msg), '*');
                break;
            case 'ROUTENET_MANAGE':  //航路网管理页面
                var msg = {"cmd":"ROUTENET_MANAGE"};
                window.parent.postMessage(JSON.stringify(msg), '*');
                break;
            default:
                console.error("main 无法解析的消息");
                break;
        }
    }
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值