javascript:如何从window.opener访问window.top?

时间:2014-12-23 22:27:27

标签: javascript dom

我正在尝试在弹出窗口中引用window.top http://www.globalrph.com/davescripts/popup.htm

在弹出窗口中我想访问主窗口的文档,但window.top返回未定义。

2 个答案:

答案 0 :(得分:1)

访问弹出窗口的开场白。

window.opener

访问开启者的顶部(例如,你的开场白是在iframe中)

window.opener.top

一旦进入开启窗口,您就可以访问该文档以更改其上下文,操作URL的位置等。

答案 1 :(得分:0)

如果您想将弹出窗口移动到与打开的浏览器窗口相同的顶部位置并水平居中于打开的浏览器窗口的大小,则在现代浏览器中您可以使用:

window.moveTo(window.opener.screenX + (window.opener.outerWidth / 2) - (window.outerWidth / 2), window.opener.screenY)

outerWidth和screenX以及screenY在IE9及更高版本以及现代浏览器中工作。

moveTo已经存在了很长时间。

在这种情况下,我们将获得打开浏览器窗口的左侧位置,计算其中心并减去弹出窗口宽度的一半。这给了中心位置。然后我们使用window.opener.screenY来获取打开浏览器窗口的顶部位置,并将弹出窗口的顶部设置为相同。

许多浏览器默认启用弹出窗口阻止程序,并要求用户单击链接以打开弹出窗口。我有这个Web应用程序打开一个弹出窗口来预览结果。许多Web应用程序使用定位div来进行对话。不知道你的申请,我真的不能就最好的方法提出建议。