Joa*_*tor 4 javascript internet-explorer-9
我正在运行一些使用这个的javascript:
controls = document.querySelectorAll("input,textarea,button");
Run Code Online (Sandbox Code Playgroud)
它应该适用于IE 9(这是开发人员和客户端使用的版本).但是在我们的项目中,我们使用了一些非常旧的Web组件,这些组件只能在兼容模式下正 而querySelectorAll仅适用于我在一些研究后发现的标准模式.
还有其他选择吗?
编辑:它在Chrome和FF上运行正常
Spu*_*ley 10
querySelectorAll在IE9中工作正常.它甚至适用于IE8.
但听起来你的问题是让它专门用于怪异模式或兼容模式.
如果这是问题那么......好吧,问题是模式,而不是功能.您需要将网站置于标准模式,然后querySelectorAll才能工作.
兼容模式的重点是使浏览器模拟IE的旧版本.它的主要方法是禁用自该版本以来添加的所有功能.
基本上你所说的是"我已经关闭了浏览器中的一半功能,我怎样才能让其中一个功能重新运行?"
显而易见的答案是:重新打开功能.
这样做的方法是确保浏览器处于标准模式.
你需要做两件事:
确保您拥有有效的doctype,这样您就可以避免使用Quirks模式.如果您没有,请添加<!DOCTYPE html>到代码的最顶部(<html>标记上方).
在<head>元素中的某处添加IE标准模式元标记:
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
Run Code Online (Sandbox Code Playgroud)
这将迫使IE使用它可用的最佳模式 - 因此IE9将处于IE9标准模式等.
您应该确保以上两个都在您网站的所有页面中.
[编辑]
你提到你依赖的是只能在兼容模式下工作的旧组件.
基本答案是,您无法querySelectorAll在兼容模式的同一站点中使用.还有很多其他现代浏览器功能,你也会错过.
如果可能,您应该尝试升级该组件,或者将其修复为在现代标准模式下工作.
如果你真的无法摆脱兼容模式,那么你几乎陷入困境.
在这种情况下,您唯一真正的选择是切换到使用像jQuery这样的库,它内置了自己的选择器引擎.
如果您已经在不使用jQuery的情况下编写了自己的网站,那么必须重写所有内容才能使用它,这是一个非常难看的想法,但这可能是您唯一的选择.
| 归档时间: |
|
| 查看次数: |
20781 次 |
| 最近记录: |