父子窗口消息传递

it2022-12-27  90

iframe不跨域时直接操作对象

获得layer的window对象: window[layero.find("iframe")[0]['name']]; layero.find("iframe")[0].contentWindow;

小tips:window对象与contentWindow的关系

window 对象: 浏览器会在其打开一个 HTML 文档时创建一个对应的 window 对象。 但是,如果一个文档定义了一个或多个框架(即,包含一个或多个 frame 或 iframe 标签),浏览器就会为原始文档创建一个 window 对象,再为每个框架创建额外的 window 对象。 这些额外的对象是原始窗口的 子窗口,可能被原始窗口中发生的事件所影响。例如,关闭原始窗口将导致关闭全部子窗口。如果想要创建新窗口(以及对应的 window 对象),可以使用像 open, showModalDialog 和 showModelessDialog 这样的方法。 contentWindow: contentWindow属性是指指定的frame或者iframe所在的window对象。

iframe跨域时使用postMessage

发送消息 //参数1message: 需要发送到另一个窗口的数据(一个字符串或者对象) //参数2targetOrigin: 消息要发往的窗口的 URL 。目标窗口的协议,端口和域名必须匹配。输入 “*” 会匹配任意 URL 但为了安全起见不建议那么做。 window.postMessage('stop', 'http://localhost'); 接收消息 eventHandler(msg) { if (msg.data === 'stop') { console.log(msg); } } //监听消息事件 //第一个参数是事件的类型 //第二个参数是事件触发后调用的函数 //第三个参数是个布尔值用于描述事件是冒泡还是捕获。该参数是可选的。 //默认值为 false, 即冒泡传递,当值为 true 时, 事件使用捕获传递。 window.addEventListener('message', this.eventHandler, false); //移除监听,参数一样,注意要移除成功函数指向地址要一样也即不能用匿名函数 window.removeEventListener('message', this.eventHandler, false);

window对象知识

原文:链接https://www.cnblogs.com/keyi/p/6894499.html window.open之类的知识:链接https://blog.csdn.net/hyunbar/article/details/82758953 在应用有frameset或者iframe的页面时, parent是父窗口, top是最顶级父窗口(有的窗口中套了好几层frameset或者iframe), self是当前窗口, opener是用open方法打开当前窗口的那个窗口。

window.self 功能:是对当前窗口自身的引用。它和window属性是等价的。 语法:window.self 注:window、self、window.self是等价的。 window.top 功能:返回顶层窗口,即浏览器窗口。 语法:window.top、top 注:如果窗口本身就是顶层窗口,top属性返回的是对自身的引用。 window.parent 功能:返回父窗口。 语法:window.parent、parent 注:如果窗口本身是顶层窗口,parent属性返回的是对自身的引用。 window.opener 功能:返回打开者的窗口。 语法:window.opener、opener 注:opener即谁打开我的,比如A页面利用window.open('B')弹出了B页面窗口,那么A页面所在窗口就是B页面的opener,在B页面通过opener对象可以访问A页面。
最新回复(0)