if (self != top) {
window.open(self.location,'_top');
}
self != top
和window.open(self.location, '_top');
分别代表什么?
这将打破 HTML 框架并用当前页面替换顶级框架。
这类似于单击带有
target="_top"
设置的链接,这将丢弃完整的框架集并将其替换为链接指向的页面。这正是该代码的作用,只需“打开一个链接”(用用户术语来说;在 JavaScript 中,它采用 window.open
的形式)到我们所看到的同一页面,但位于顶层。
在这方面,self
是我们当前所在的页面。top
是浏览器正在显示的顶级框架。如果浏览器不显示框架集,则 self == top
有效。然而,如果我们的页面被加框,那么它们就会不同。
因此
self != top
检测页面是否显示在框架中,并且 window.open
如前所述,就像单击 target
属性设置为 "_top"
(第二个参数)的链接一样。
这意味着“如果我加载到框架中,即不是首页,请打开一个新窗口显示我”