Mil*_*kov 37 javascript window
我有一个JavaScript来处理检测页面是否在框架中.我使用top.frames []等,一切正常.
在这个脚本中,我注意到我可以互换地使用"窗口"或"自我",一切仍然有效.在HTML页面中使用"窗口"是否与"self"相同?
End*_*der 19
来自Javascript:The Definitive Guide:
Window对象定义了许多属性和方法,允许您操作Web浏览器窗口.它还定义了引用其他重要对象的
document属性,例如Document对象的属性.最后,Window对象有两个自引用属性,window和self.您可以使用全局变量直接引用Window对象.
总之,无论window与self对窗口对象,这是客户端的JavaScript的全局对象的引用.
Tit*_*tus 15
self是一个只读属性,可以比直接更灵活,有时更window直接使用.这是因为self引用的变化取决于操作上下文(不像window.self,只有存在时才window存在).正如其他人所提到的那样,这对于比较也很有用.
例如,如果您self在Web Worker(它位于自己的后台线程中)内部使用,self则实际将引用WorkerGlobalScope.self.但是,如果你使用self的浏览器中正常情况下,self将简单地返回到基准Window.self(即有一个document,addEventListener()和所有其他的东西你看惯了).
TL; DR而.selfin在window.self不存在的情况下将不存在,window单独使用self将指向Window.self传统的窗口/浏览器上下文,或者WorkerGlobalScope.self在Web工作者上下文中.
像往常一样,MDN 在他们的JavaScript文档中对这个主题有很好的写作.:)
旁注:self此处的用法不应与声明局部变量的常见JS模式混淆:var self = this在切换后维护对上下文的引用.
你可以在这里阅读更多相关内容:在JavaScript中摆脱绑定情境.
Jes*_*lon 11
以下是MDN页面中window.self的解释和示例:
if (window.parent.frames[0] != window.self) {
// this window is not the first frame in the list
}
Run Code Online (Sandbox Code Playgroud)
window.self几乎总是在比较中使用,如上例所示,它查明当前窗口是否是父框架集中的第一个子框架.
鉴于目前没有人使用框架集,我认为可以考虑没有有用的案例self.此外,至少在Firefox中,测试window而不是window.self等效.
window两者self都引用当前网页的全局对象。
欲了解更多信息,请查看http://www.howtocreate.co.uk/tutorials/javascript/browserinspecific
| 归档时间: |
|
| 查看次数: |
14364 次 |
| 最近记录: |