Javascript IE9相当于querySelectorAll

Javascript IE9相当于querySelectorAll,javascript,internet-explorer,internet-explorer-9,selectors-api,Javascript,Internet Explorer,Internet Explorer 9,Selectors Api,我在FF或Chrome中没有遇到任何问题,但IE9在这个方法上出现了一个错误。我认为我可以使用它,因为它在这里被证明是受支持的: 然而,实际情况似乎并非如此。也就是说,我可以用什么来代替它 编辑:下面是它失败的确切行: var maximize_buttons = document.querySelectorAll(".maximize"); 这是我第一次尝试使用querySelectorAll()。浏览器版本号为9.0.8112.16421 编辑(再次):我已经在两台不同的计算机上验证了这

我在FF或Chrome中没有遇到任何问题,但IE9在这个方法上出现了一个错误。我认为我可以使用它,因为它在这里被证明是受支持的:

然而,实际情况似乎并非如此。也就是说,我可以用什么来代替它

编辑:下面是它失败的确切行:

var maximize_buttons = document.querySelectorAll(".maximize");
这是我第一次尝试使用querySelectorAll()。浏览器版本号为9.0.8112.16421

编辑(再次):我已经在两台不同的计算机上验证了这个错误。然而,他们有一个共同点——他们都在VMware上运行Windows 7。这有关系吗


浏览器模式为IE9,但文档模式默认设置为quirks。将其更改为Internet Explorer 9标准解决了这个问题,但是如果默认为“怪癖”,我仍然需要使其能够工作。

您需要使用html5 doctype for IE9来使用querySelectorAll()javascript方法。doctype看起来像这样,应该放在站点中所有页面的第一行

<!DOCTYPE html>

运行quirksmode就像运行非标准IE6一样

您必须,必须,必须(!)在每个HTML页面的顶部有一个doctype:

每个相关(以及许多不相关)的浏览器都支持它。
没有它。。。好。。。怪癖模式

你永远不想在怪癖模式下运行任何东西,因为你永远不知道什么样的JS/CSS/html5支持会突然消失或行为怪异


所以不要这样做。

正如其他答案所示,这与怪癖与标准模式无关

这与所谓的“兼容性模式”有关。默认情况下,IE9到IE11对内部网站使用“兼容性模式”,并根据您的设置对其他网站使用“兼容性模式”

要告诉IE您的网站实际上使用了web标准,并且不应该让自己步履蹒跚,或者:

  • 更新服务器配置以发送值为IE=Edge的
    X-UA-Compatible
    标头,或

  • 将其作为
    meta
    标记添加到
    标题的顶部
    元素标记:

    <meta http-equiv="X-UA-Compatible" content="IE=Edge">
    
    
    

  • 当然,你也应该有一个doctype,但是仅仅一个doctype不能解决(在)兼容模式下的问题。

    IE9在标准和怪癖模式下支持qSA,你使用的浏览器是什么?尝试
    警报(文档类型.queryselectoral)选择器看起来像什么?它可能使用IE9不支持的选择器。问题已编辑,包含更多详细信息。该警报显示“未定义”。您是否在启用兼容模式的页面上进行测试?如果IE正在模仿IE7,它的行为将与此完全相同。@Fibericon Quirks不是默认值,如果您正确标记页面的话。你有doctype吗?事实上,这不是全部事实。任何完全限定的DOCTYPE都可以工作,而不仅仅是HTML5 DOCTYPE。浏览器必须仅处于标准模式。