我尝试使用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 模式或兼容模式。您可以使用 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 声明;你需要添加一个。