首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >何时使用window.opener / window.parent / window.top

何时使用window.opener / window.parent / window.top
EN

Stack Overflow用户
提问于 2012-07-03 22:25:50
回答 4查看 173.4K关注 0票数 101

在JavaScript中,什么时候使用window.opener / window.parent / window.top

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-07-03 22:34:06

  • window.opener指的是为打开窗口而调用window.open( ... )的窗口,它的called
  • window.parent指的是<frame>中窗口的父窗口,<iframe>
  • window.top指的是嵌套在一个或多个<iframe>子窗口层中的窗口的最上面的窗口

当它们与引用窗口的情况无关时,它们将是null (或者可能是undefined)。(“引用窗口”是指运行JavaScript代码的上下文窗口。)

票数 172
EN

Stack Overflow用户

发布于 2012-07-03 22:35:50

我认为你需要在你的问题中添加一些上下文。但是,可以在以下位置找到有关这些内容的基本信息:

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

在处理需要与包含它们的窗口对象进行通信的IFrames时,我主要使用它。

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

这对于确保您与顶级浏览器窗口进行交互非常有用。你可以用它来防止其他网站对你的网站进行iframing攻击,等等。

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

更新:有几种方法可以处理你的情况。

您具有以下结构:

对话框1打开的

  • 主窗口
    • 对话框1
      • 对话框2

当对话框1运行代码以打开对话框2时,在创建对话框2之后,让对话框1在对话框2上设置引用Dialog1打开程序的属性。

因此,如果“子窗口”是对话框2窗口对象的变量,而“窗口”是对话框1窗口对象的变量。在打开对话框2之后,但在关闭对话框1之前,进行类似如下的分配:

代码语言:javascript
复制
childwindow.appMainWindow = window.opener

完成上面的赋值后,关闭对话框1。然后,从dialog2内部运行的代码中,您应该能够使用window.appMainWindow来引用主窗口,窗口对象。

希望这能有所帮助。

票数 26
EN

Stack Overflow用户

发布于 2012-07-03 22:39:04

top、parent、opener (以及window、self和iframe)都是窗口对象。

  1. window.opener window.
  2. window.top返回打开或启动当前弹出窗口的窗口self.
  3. window.parent ->返回最上面的窗口,如果使用框架,这是框架集窗口,如果不使用框架,这与窗口相同,或者self.
  4. window.parent ->返回当前框架或iframe的父框架。父框架可以是框架集窗口,如果有嵌套框架,也可以是另一个框架。如果不使用框架,则父窗口与当前窗口或self

相同

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11313045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档