【问题标题】:JavaScript - multiple global objects in multiple HTML frames?JavaScript - 多个 HTML 框架中的多个全局对象?
【发布时间】:2014-10-05 23:47:22
【问题描述】:

在多框架框架集 HTML 中是否有多个(不同的)全局对象?

常用:

 if(window.top != window.self) {
   alert("We're in a frame");
 }

其中window[[global]] 对象的属性,就像self 一样,两者都是对[[global]] 对象本身的引用。但是,如果window.top 指的是最顶层的window 框架对象,因此是[[global]] 对象,那么我们有多少[[global]] 对象?或者可能只更改了窗口 DOM 部分?

【问题讨论】:

  • “我们”是什么意思,每个iframe中只有一个全局窗口

标签: javascript html dom


【解决方案1】:

每个document(因此每个帧)都有自己的window 对象。

window 对象不是唯一的单例。这只是Window 的一个实例。为每个document 创建一个,可以通过document.defaultView 访问。

当且仅当您的应用程序的两个部分共享一个document,它们共享一个window

没有[[global]] 对象:全局范围只是方便访问当前window 的一种方式。

【讨论】:

  • @umop episdn:“我对 ECMAScript 中的全局对象的了解如下:全局对象是在进入任何执行上下文之前创建的对象;该对象存在于单个副本中,它的属性可以从程序的任何地方访问,全局对象的生命周期以程序结束结束。”你可以在这里阅读Variable object in global context。所以现在我有点困惑。
  • 你不能真正将它作为一个对象来访问,它更像是一个命名空间。重要的是每一帧都有不同的window
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-02
  • 2021-10-04
  • 1970-01-01
  • 2020-06-15
  • 2021-10-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多