IE8 不支持 querySelectorAll

IT技术 javascript internet-explorer-8 w3c selectors-api
2021-02-20 07:24:53

我尝试使用document.querySelectorAll(),但 IE8 抛出错误,即

对象不支持此属性或方法

var titleCheckBox = document.querySelectorAll("");

这里写到http://www.quirksmode.org/dom/w3c_core.html#t13,说明IE8支持这种方法。我做错了什么?

2个回答

检查您的页面是否未处于 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 设置令人惊讶地鲜为人知,并且吸引了很多人,甚至一些经验丰富的开发人员。

非常感谢!兼容性也帮助了我。
2021-04-25 07:24:53
我遇到了<base>标签位于<html>标签之间的问题<head>,所以只需确保您的 HTML 结构有效。
2021-04-29 07:24:53
关于兼容性视图的好点 - 我相信 IE 也会在该模式下抛出相同的错误,如果它实际上在那里不起作用。
2021-05-17 07:24:53
谢谢,兼容性问题修复帮助我解决了 IE 中的 Jquery Datepicker 问题
2021-05-17 07:24:53

IE8 仅支持querySelectorAll()标准模式。MSDN

Selectors API 被定义为Selectors API规范的一部分,仅适用于以 IE8 标准模式显示的网页。

您的页面可能没有正确的 DOCTYPE 声明;你需要添加一个。

此外,它只会使用 css 2 选择器选择 dom 节点。
2021-04-17 07:24:53
不,它使用它支持的任何选择器来选择节点。IE8 支持一些 CSS3 选择器,包括所有属性选择器和~组合器。
2021-04-25 07:24:53