考虑以下 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(使用前将#替换为@)