window 对象在 Chrome 和 IE 中表现奇怪

2024-01-09

考虑以下 HTML 示例:

<div id="about">
 <!-- content here -->
</div>

以及以下脚本

var about = (function ($, window, document) {
    "use strict";

     var methods;

     methods = {
        init: function () {
        // Do things here 
        }
     };

     return methods;
} (jQuery, window, document));

变量about应附在window此时的对象。

在 Firefox (3.6.17) 中我可以写

window["about"] 

如果 about 还没有被处理,这将返回undefined如果有,它将返回该对象,正如我所期望的那样。

然而,问题是同样的代码window["about"]在 Chrome 和 IE(7 和 8)中返回实际的 HTML 对象。从上面的示例中,它将返回以下内容:

    <div id="about">
     <!-- content here -->
    </div>

为什么会出现这种情况?

另外,有没有更好的方法来检查是否about对象可用,而不是使用window元素?我意识到理想情况下人们不想破坏窗口对象,但这是一个不同的问题。

Thanks


WebKit 浏览器似乎模仿了旧的 IE 行为,将元素“id”值视为window object.

我个人不喜欢这种行为。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

window 对象在 Chrome 和 IE 中表现奇怪 的相关文章

随机推荐