在 JavaScript 中比较 `self` 和 `top` 有什么作用?

问题描述 投票:0回答:3
if (self != top) {
  window.open(self.location,'_top');
}

self != top
window.open(self.location, '_top');
分别代表什么?

javascript dom frames
3个回答
6
投票

这将打破 HTML 框架并用当前页面替换顶级框架。

这类似于单击带有

target="_top"
设置的链接,这将丢弃完整的框架集并将其替换为链接指向的页面。这正是该代码的作用,只需“打开一个链接”(用用户术语来说;在 JavaScript 中,它采用
window.open
的形式)到我们所看到的同一页面,但位于顶层。

在这方面,

self
是我们当前所在的页面。
top
是浏览器正在显示的顶级框架。如果浏览器不显示框架集,则
self == top
有效。然而,如果我们的页面被加框,那么它们就会不同。

因此

self != top
检测页面是否显示在框架中,并且
window.open
如前所述,就像单击
target
属性设置为
"_top"
(第二个参数)的链接一样。



0
投票

这意味着“如果我加载到框架中,即不是首页,请打开一个新窗口显示我”

© www.soinside.com 2019 - 2024. All rights reserved.