JavaScript-如何为其他浏览器添加对document.all的支持?
我有一堆旧的Javascript代码,其中JavaScript-如何为其他浏览器添加对document.all的支持?,javascript,Javascript,我有一堆旧的Javascript代码,其中文档。所有的都被使用了。现在,我需要找到一种方法,用document.getElementById替换document.all。我可以做些什么来封装文档.all,这样它就可以调用第二个函数了吗?或者我需要编辑所有文件吗?从长远来看,如果你只是替换了它,那会容易得多。不要低估文本编辑器的查找/替换功能,只要咬紧牙关,将其替换即可文档。所有的已经过时很长时间了。@RocketHazmat-一些现代浏览器确实实现了文档。所有的都是为了向后兼容。但并不是所有的,
文档。所有的都被使用了。现在,我需要找到一种方法,用document.getElementById
替换document.all
。我可以做些什么来封装文档.all
,这样它就可以调用第二个函数了吗?或者我需要编辑所有文件吗?从长远来看,如果你只是替换了它,那会容易得多。不要低估文本编辑器的查找/替换功能,只要咬紧牙关,将其替换即可<代码>文档。所有的
已经过时很长时间了。@RocketHazmat-一些现代浏览器确实实现了文档。所有的
都是为了向后兼容。但并不是所有的,他们通常试图通过假装它不存在来限制它的使用,如果你试图用功能检测它(他们必须这么做,因为很多老网站都用检测文档。所有的来检测IE,而你不想让你所有的IE特定黑客都在Chrome上运行)@Spudley:这很奇怪<代码>!文档。所有
在Chrome中均为true
。所以它假装它不存在:)@RocketHazmat奇怪的是,类型的文档。所有
在Chrome中都是“未定义”的,这似乎是。那么像document.all['header']
这样的用法呢?(上面我指的是作为id或名称的“header”,而不是标记名)
if (!document.all) {
document.constructor.prototype.__defineGetter__('all', function() {
return document.getElementsByTagName('*');
});
}