js 怎样从子窗口调用父窗口的方法

JavaScript011

js 怎样从子窗口调用父窗口的方法,第1张

如果是iframe嵌套的父页面,就用window.parent.父页面函数()

如果是window.open打开的子页面,调用父页面的函数就用window.openr.函数

1、首先建立一个父级页面parent.html,代码如图,一个pop函数方法,一个链接到child.html的iframe标签。

2、再新建一个child.html页面,如图,展示一个id=link的div标签,和link的点击事件,因为是调用父级方法,所以需要用到window.parent.pop()方法。

3、预览页面,可明显看到parent.html里面的iframe框架,指向的就是child子页面。

4、点击页面中“调用父级pop方法”的文字链,会提示错误,这是因为没配置好域名等相关设置。

5、打开iis,右键iframe文件夹——“管理文件夹”——“浏览”;即可打开本地测试地址;(如小伙伴没配置iis,需要先配置iis建立站点)。

6、再次点击“调用父级pop方法”的文字链,即可成功弹出提示。

使用window.opener,在b页面可以通过window.opener获取a页面窗口的引用 。

通过判断if(window.opener&&!window.opener.closed)来识别a窗口是否关闭。

要实现a关闭则重新打开的功能,需要轮询 setInterval,如果关闭调用window.open重新打开a页面即可。

点击按钮a页面前端显示,可以使用window.opener.focus()

不过现在的大多数浏览器出于安全考虑,一些方法调用后并无效果,比如window.opener.focus()你可以使用ie6这样的旧浏览器,这些都是完全可以的