我尝试使用document.querySelectorAll()
,但 IE8 抛出错误,即
对象不支持此属性或方法
var titleCheckBox = document.querySelectorAll("");
这里http://www.quirksmode.org/dom/w3c_core.html#t13写的,说IE8支持这个方法。我做错了什么?
我尝试使用document.querySelectorAll()
,但 IE8 抛出错误,即
对象不支持此属性或方法
var titleCheckBox = document.querySelectorAll("");
这里http://www.quirksmode.org/dom/w3c_core.html#t13写的,说IE8支持这个方法。我做错了什么?
检查您的页面是否处于 Quirks 模式或 Compatibility 模式。您可以使用 F12 开发工具来确认这一点。按 F12 并查看结果窗口的右上角。如果您在模式描述中看到“兼容性”或“怪癖”,那么您已经找到了问题所在。
怪癖模式:这通常是由缺少或损坏的 Doctype 触发的。如果是这种情况,请确保您的页面以以下内容开头:
<!DOCTYPE html>
兼容模式(IE7 模式):如果您在本地查看页面(即在本地机器上运行它,例如用于测试,或在本地网络上),这可能会被触发。在这种情况下,您遇到了应该禁用的 IE 配置设置。转到“工具”菜单,然后选择“兼容性视图设置”选项。取消勾选兼容性选项,页面应该开始工作。
兼容模式也可以由X-UA-Compatibility
元标记触发(或避免)。如果您在使用兼容模式时遇到问题,这是避免它的好方法:将以下行添加到您的代码中:
<meta http-equiv="X-UA-Compatible" content="IE=edge">
以上任何一个(或两者)都可能是问题,但我的猜测是问题是兼容模式。compat-mode-on-intranet-sites 设置令人惊讶地鲜为人知,并且吸引了很多人,甚至是一些经验丰富的开发人员。
IE8 只支持querySelectorAll()
标准模式。来自MSDN:
Selectors API 被定义为Selectors API规范的一部分,并且仅适用于以 IE8 标准模式显示的网页。
您的页面可能没有正确的 DOCTYPE 声明;您将需要添加一个。