跨窗口通信

1、同域下的窗口通信
1》iframe

<iframe id="myframe" src="2.iframe.html"></iframe>

如果需要操作子页面,首先需要获取子页面的window对象:
oMyIframe.contentWindow -> 被iframe包含的页面的window对象
如果需要通过子页面操作父页面,可以通过parent获得父级页面的window对象:
eg:parenteg.document.body.style.background = 'green';

这里需要注意一下windowparent、top的区别:
当当前页面为最顶级页面时三者是相同的;
当当前页面为第二级页面时parent、top是相同的;

2》

window.open( , )  -------- 接受两个参数 参数一:新打开页面的地址    参数二:以何种方式打开

注意:此方法有返回值 返回值为新打开窗口的window对象,利用返回值可以完成对新窗口的dom操作

假如需要利用新打开窗口操作员页面,需要使用下面方法:
window.opener ---------- 通过window.open方法打开当前页面的窗口window

2、跨域下的窗口通信
注意:当本页面和包含页面不在同一个域名下的时候,这样操作就会有跨域操作安全限制问题。

postMessage : 可以通过这个方法给另外一个窗口发送信息
oMyIframe.contentWindow.postMessage(mesage, url);   ------- 第一个参数:发送的数据  第二个参数:接收数据的域名{带上协议}

注意:接收消息的窗口的window对象.postMessage();

子页面可以通过message事件接受发送的消息:
    window.addEventListener('message', function(ev) {}, false)
    ev.data : 发送过来的数据
    ev.origin : 判断发送数据页面的域名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值