Javascript 什么是文件。全部?

Javascript 什么是文件。全部?,javascript,getelementbyid,Javascript,Getelementbyid,可能重复: 我正在重构一些别人写的旧代码。我发现了以下片段: if (document.all || document.getElementById) { ... } 何时执行if语句中的代码 谢谢大家! document.all()是访问DOM元素的非标准方式。它已经被一些浏览器弃用了。它允许您访问文档中的所有子元素 getElementById()是一个标准,完全受支持。每个元素在文档上都有一个唯一的id。阅读此问答:使用document。所有和document。没有任何参数的ge

可能重复:

我正在重构一些别人写的旧代码。我发现了以下片段:

if (document.all || document.getElementById) {
   ...
}
何时执行if语句中的代码

谢谢大家!

document.all()是访问DOM元素的非标准方式。它已经被一些浏览器弃用了。它允许您访问文档中的所有子元素


getElementById()是一个标准,完全受支持。每个元素在文档上都有一个唯一的id。

阅读此问答:使用
document。所有
document。没有任何参数的getElementById
如果在该浏览器中受支持,将返回“true”。因此,如果
文档,您的“if”将被执行。所有
都受支持:
“IE 4->10”
,一些版本的
Opera
,也许还有其他版本;或者如果支持
document.getElementById
“IE 5及以上”
“Netscape 6及以上”
,可能还支持所有现代版本的“Firefox”、“Chrome”、“Safari”等。对于
“IE<4”
“Netscape<6”
,以及大多数其他浏览器的一些非常旧的版本,“if”将不会执行。实际上,这是错误的。如今,
document.all
由于向后兼容的原因是错误的,尽管它仍然是一个对象。例如,运行
console.log(!!document.all,document.all.length)
为我打印出
false 1059
。链接到其他答案应该在注释中完成,除非在您回答非常不同的问题并添加作为参考的情况下谢谢您的答案。但是if语句中的代码将在什么时候执行呢?在我的例子中,
document.all
document.getElementById
都没有任何像
div1
@user1170330这样的参数:如果我理解正确,如果用户在浏览器中打开JavaScript,就会执行它。而且,正如我所读到的,这似乎是IE4的第一个案例。所以,您可以将其从代码中删除,并使用其他工具检查用户是否在其浏览器中启用了JS(例如tag。查看更多信息)。希望这有帮助。@Nikola:那么,
else
分支什么时候开始运行呢?@SamB在旧版本的Netscape中。