iframe跨域访问问题

1、“代理页面”法

参考网址:http://www.jianshu.com/p/9d90d3333215

描述:传递方法
案例:子页面调用父页面的方法,父页面方新建中间页面bridge.html文件,pay()方法为父页面供子页面调用的方法,但是由于跨域,子页面调取不到,需要通过父页面同域下的中间页面bridge来调取方法。
  中间页面bridge.html:window.onload = function(){
                       top.pay()
                   }
  子页面:function sendMessage(){//子页面在调用sendMessage()方法的时候执行pay()方法
             if(!document.getElementById("crossFrame")){
                     var iframe = document.createElement("iframe");
                     iframe.setAttribute("style","position:absolute;left:-9999px;top:-9999px")
                     iframe.setAttribute("src", "中间页面的路径bridge.html")
                     document.body.appendChild(iframe)
                 }else{
                     document.getElementById("crossFrame").src ='中间页面的路径bridge.html'
                 }
             }

2、“postMessage”法

参考网址:https://segmentfault.com/a/1190000004512967

描述:传递信息
案例:子页面传递信息给父页面
实现:
    父页面:window.addEventListener("message", function(event) {
                var str = event.data;
                //str为传递过来的信息
            }, false);
    子页面:parent.postMessage(
                    {"a",1},"父页面地址"
            );

你可能感兴趣的:(iframe跨域访问问题)