gpt4 book ai didi

javascript - IE 的 querySelectorAll 替代品

转载 作者:搜寻专家 更新时间:2023-11-01 04:54:34 25 4
gpt4 key购买 nike

我正在运行一些使用它的 javascript:

controls = document.querySelectorAll("input,textarea,button");

它应该适用于 IE 9(这是开发人员和客户使用的版本)。但是在我们的项目中,我们使用了一些非常古老的 Web 组件,它们只能在兼容模式下正常工作。而 querySelectorAll 仅适用于我经过一些研究后发现的标准模式。

还有其他选择吗?

编辑:它在 Chrome 和 FF 上运行良好

最佳答案

querySelectorAll在 IE9 中工作正常。它甚至可以在 IE8 中运行。

但听起来您的问题是让它专门在怪癖模式或兼容模式下工作。

如果那是问题所在,那么……好吧,问题出在模式上,而不是功能上。你需要让站点进入标准模式,然后 querySelectorAll将工作。

兼容模式的全部意义在于使浏览器模拟旧版本的 IE。它执行此操作的主要方法是禁用自该版本以来添加的所有功能。

所以基本上您的意思是“我已经关闭了浏览器中的一半功能,我怎样才能让其中的一个功能再次运行?”

显而易见的答案是:重新打开这些功能。

这样做的方法是确保浏览器处于标准模式。

你需要做两件事:

  1. 确保您有一个有效的文档类型,这样您就可以避免 Quirks 模式。如果没有,请添加 <!DOCTYPE html>到代码的最顶部(<html> 标记上方)。

  2. 在您的 <head> 中的某处添加 IE 标准模式元标记元素:

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

    这将强制 IE 使用它可用的最佳模式——因此 IE9 将处于 IE9 标准模式,等等。

您应该确保以上两项都出现在您网站的所有页面中。

[编辑]
您提到您依赖于只能在兼容模式下工作的旧组件。

基本的答案是您将无法使用 querySelectorAll在您陷入兼容模式的同一站点中。您还会错过许多其他现代浏览器功能。

如果可能,您应该尝试升级该组件,或修复它以在现代标准模式下工作。

如果您真的无法退出兼容模式,那么您就被困住了。

在这种情况下,您唯一真正的选择是改用像 jQuery 这样内置了自己的选择器引擎的库。

如果您已经在不使用 jQuery 的情况下编写了您的网站,那么必须重写所有内容才能使用它是一个非常丑陋的想法,但这可能是您唯一的选择。

关于javascript - IE 的 querySelectorAll 替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18404362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com