-1

所以我在玩documentJavaScript,作为使用document.getElementById. 但是为什么document.all等于null?我运行了一些命令来证明它更加“虚假”。

document.all // HTMLAllCollection[1276]
document.all[0] // <html>...</html>

typeof document.all // 'undefined'
!{} // false. works correctly
!document.all // true! WTF

这是什么?其他对象工作正常。对象怎么了document.all?它坏了吗?

4

1 回答 1

2

document.all是 IE 引入的非标准 API。使用它不被认为是好的做法。

为了与依赖它的网站兼容,其他一些浏览器已经引入了对它的支持。

一些使用它的网站依赖于测试是否存在document.all来确定浏览器是否是IE,并使用它来假设浏览器有一堆错误和 IE 提供的其他非标准 API。

出于兼容性目的添加支持的浏览器会返回一个虚假值,这样它们就不会被错误地识别为 IE(并通过其他对它们不起作用的代码)。

于 2022-02-02T19:43:50.720 回答