- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在运行一些使用它的 javascript:
controls = document.querySelectorAll("input,textarea,button");
它应该适用于 IE 9(这是开发人员和客户使用的版本)。但是在我们的项目中,我们使用了一些非常古老的 Web 组件,它们只能在兼容模式下正常工作。而 querySelectorAll 仅适用于我经过一些研究后发现的标准模式。
还有其他选择吗?
编辑:它在 Chrome 和 FF 上运行良好
最佳答案
querySelectorAll
在 IE9 中工作正常。它甚至可以在 IE8 中运行。
但听起来您的问题是让它专门在怪癖模式或兼容模式下工作。
如果那是问题所在,那么……好吧,问题出在模式上,而不是功能上。你需要让站点进入标准模式,然后 querySelectorAll
将工作。
兼容模式的全部意义在于使浏览器模拟旧版本的 IE。它执行此操作的主要方法是禁用自该版本以来添加的所有功能。
所以基本上您的意思是“我已经关闭了浏览器中的一半功能,我怎样才能让其中的一个功能再次运行?”
显而易见的答案是:重新打开这些功能。
这样做的方法是确保浏览器处于标准模式。
你需要做两件事:
确保您有一个有效的文档类型,这样您就可以避免 Quirks 模式。如果没有,请添加 <!DOCTYPE html>
到代码的最顶部(<html>
标记上方)。
在您的 <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/
我有以下内容: var searchSuggestionsItems = document.querySelectorAll("#search-user-results .live-search-re
我正在尝试查找具有以下内容的元素: doc.querySelectorAll('#divContentList article'); 它运行良好,但另一位开发人员告诉我我应该写: doc.queryS
尝试在错误控制台中执行这 2 个代码块: 第一个。输出节点列表。 var selector = "*[data-type=day][data-day='23']"; var a = document.
这是我的 JavaScript 代码: function answer(){ var list = document.querySelectorAll("#fish"); list[1].onclic
假设我有: ... ... ... ... ... ... ... 如何选择 元素,但仅限于 testimonials-wrapper 内的元素 尝试过:d
我创建了一个表,我们将其命名为 RPT_ACCOUNTS 代码|描述|类型01|银行|BA02|税|TA 当我从数据表中提取信息时,我会在 html 中直观地创建表格 row.dataset.rpt_
document.querySelectorAll('#salary-min, #salary-max').addEventListener('input', event => event.tar
这个问题已经有答案了: What do querySelectorAll and getElementsBy* methods return? (12 个回答) 已关闭 2 年前。 javaScrip
为了简单起见,我有以下 html,它不是我编写的,我无法控制。 我正在尝试为我们的职员编写一个脚本,该脚本必须将数据输入到此 Web 界面,以便她可以将数据从 Excel 复制并粘贴到 Web
我的代码有问题。现在,如果我单击第一个元素,所有元素将变为红色,如果我第二次单击它们将变为绿色。我想为 fa-heart 类的每个元素设置两个独立的事件。我会更好地解释:如果我第一次点击第一个元素 D
我已经创建了简单的 html 表单,我想使用 javascript 为输入字段标签设置动画。我使用 querySellectorAll 方法来识别对象,并使用控制台记录 querySelectorAl
我目前正在尝试适应this demo当您单击应用了相同类的链接时,用于页面转换。 我不确定如何在使用 querySelectorAll 后为具有相同类的所有元素调整以下代码。您认为应该进行哪些调整才能
我目前正在尝试适应this demo当您单击应用了相同类别的链接时,可以实现页面转换。目前,在 @ourmaninamsterdam 的推荐 here 后,我有以下代码:但我似乎无法让它发挥作用。您对
var arr = [].slice.call(document.querySelectorAll("a[href*='pricing']")); 返回一个长度为6的数组。 var arr = [].
我在 querySelectorAll 方面遇到问题。 这是我的代码: $(window).load( function() { // Add animations
在 JavaScript 中使用 :checked 选择器 document.querySelectorAll() 时,我发现存在不一致的行为。当 :checked 选择器用于复选框或单选按钮时,它不
我有一个表单,其中有多个选择框和带有类似名称的数组的输入。所以我有多个名称为 personroom[] 的选择框。我想用这个得到这些 var personroom=document.querySel
不确定这是否是导致我的项目出现错误的原因。 所以我有一堆具有相同类的 div,我通过选择它们 var CampaignInfo = document.querySelectorAll(".campai
假设我有以下标记... 无论如何,我可以使用 querySelectorAll 选择它们吗? 我尝试过 document.querySelectorAll([data-namespace-*])
我想使用 querySelectorAll 获取页面上多个下拉列表的选定值,然后将它们打印在页面上的其他位置。 我正在努力寻找正确的方法来执行此操作,因为它们都有不同的名称(“dropDown[0]”
我是一名优秀的程序员,十分优秀!