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},"父页面地址"
);
网友评论