在同域情况下,子页面如果想要访问父页面中的window对象中的方法的话,直接在当前页面中使用window.parent就可以啦
但是当iframe嵌入的地址与父页面的地址不在同一网段里,就出现跨域问题
解决办法:
1、子页面iframe中的代码:
<script type="text/javascript">
$("#secondaryDownload").click(function(){
var fun="click";
window.parent.postMessage(fun,'*');
})
</script>
注意:那个fun参数没有实际意义,只是为了加个小校验,当然也可以传入自己想传的参数。
2、父页面代码:
window.addEventListener('message',function(e){
console.log(e);
var fun=e.data;
if(fun=="click"){
alert("aaa");
};
}
},false);
这样, 在我们点击子页面的下载按钮时,会给父页面发一个消息,而父页面的事件监听器会接收到从而触发相应的事件.