当使用window.opener / window.parent / window.top当使用wi

2019-06-14 13:46发布

在JavaScript时使用window.opener / window.parent / window.top

Answer 1:

  • window.opener是指称为窗口window.open( ... )以打开从它的名字叫窗口
  • window.parent指窗口的父在<frame><iframe>
  • window.top指最顶层窗口从嵌套的一个或多个层的窗<iframe>子窗口

这些将是null (或者undefined )时,他们不相关的参照窗口的情况。 (“参考窗口”是指在其上下文中的JavaScript代码运行的窗口)。



Answer 2:

我想你需要一些背景添加到您的问题。 然而,在这里可以找到关于这些事情的基本信息:

window.opener https://developer.mozilla.org/en-US/docs/Web/API/Window.opener

我打开的是担任这需要用户输入,并且将信息传递回主窗口需要一个对话的新窗口时使用window.opener居多。 然而,这是由出身政策限制,所以你需要确保无论是从对话内容与所述开启窗来自同一产地被加载。

window.parent https://developer.mozilla.org/en-US/docs/Web/API/Window.parent

我再也忍受不了需要包含它们的窗口对象进行通信的IFrame工作时使用此居多。

window.top https://developer.mozilla.org/en-US/docs/Web/API/Window.top

这是确保你与顶级浏览器窗口交互有用。 你可以用它来防止其他网站从iframing您的网站,等等。

如果你添加一些细节你的问题,我可以提供其他更多相关的例子。

更新:有几个方式可以处理你的情况。
您有以下结构:

  • 主窗口
    • 对话1
      • 对话2打开通过对话1

当对话框1运行代码来打开对话框2,创建对话框2后,有对话框1设置引用Dialog1首战对话框2的属性。

所以,如果“childwindow”是您为对话窗口2对象变量,和“窗口”是为对话窗口1对象中的变量。 打开对话框2之后,但关闭对话框1做出类似这样的转让之前:

childwindow.appMainWindow = window.opener

从内dialog2运行的代码使上面的分配,关闭对话框1.在此之后,你应该能够使用window.appMainWindow引用主窗口,窗口对象。

希望这可以帮助。



Answer 3:

顶部,父母,开启器(以及窗口,自,和iframe)全部窗口对象。

  1. window.opener - >返回打开或启动当前弹出窗口的窗口。
  2. window.top - >返回顶层窗口,如果你使用的框架,这是框架窗口,如果不使用框架,这是一样的窗口或自我。
  3. window.parent - >返回当前帧或iframe的父框架。 父框架可以是框架或窗口另一帧,如果你有嵌套帧。 如果不使用框架,父母是一样的当前窗口或自


Answer 4:

当你正在处理的弹出窗口window.opener起着重要的作用,因为我们必须处理父页面的领域以及子页面,当我们要使用父页上值,我们可以使用window.opener或者我们需要一些数据在装货时的子窗口或弹出窗口然后再次使用,我们可以window.opener设置的值



文章来源: When to use window.opener / window.parent / window.top