什么决定了JavaScript函数看到的DOM(“窗口”全局)?
我们的web平台使用iFrame在桌面类型设置中托管子窗口。因为它们托管在同一个url上,所以这些DOM可以相互通信。然而,我看到了一些奇怪的情况,其中一个子窗口中的函数调用正在切换到全局DOM,我试图找出是什么决定了什么决定了JavaScript函数看到的DOM(“窗口”全局)?,javascript,dom,iframe,Javascript,Dom,Iframe,我们的web平台使用iFrame在桌面类型设置中托管子窗口。因为它们托管在同一个url上,所以这些DOM可以相互通信。然而,我看到了一些奇怪的情况,其中一个子窗口中的函数调用正在切换到全局DOM,我试图找出是什么决定了窗口全局将指向什么 我假设它是在任何DOM下创建的对象,但这里的情况似乎不是这样,因为我在子DOM中创建的对象上调用函数,但它是在父(全局)DOM的上下文中执行的 我正在使用window===window.top来确定当前上下文是子DOM还是顶级DOM,并且可以准确跟踪调用在什么时
窗口
全局将指向什么
我假设它是在任何DOM下创建的对象,但这里的情况似乎不是这样,因为我在子DOM中创建的对象上调用函数,但它是在父(全局)DOM的上下文中执行的
我正在使用
window===window.top
来确定当前上下文是子DOM还是顶级DOM,并且可以准确跟踪调用在什么时候切换到不同的DOM,但我无法找出是什么导致了DOM上下文中的这种变化。您能提供一个具体的例子吗?我不确定我是否完全理解这个问题。可能是窗口
定义了这个函数?如果函数在词汇上接近全局,而不是进行某种查找链,这会有一定的意义。事实上,经过一些调查,我认为该对象实际上是在另一个DOM中创建的,因此我的假设可能是正确的。让你更困惑的是,window
和匿名全局对象之间存在差异。
全局对象包含一个名为window
的属性,该属性指向自身。但是--在iframe中创建的对象将引用iframe的全局对象。这就是检查实例和继承失败的原因。