对象不支持addEventListener,jquery中的IE8问题

26

我正在使用Jquery 2.0.2,在IE8中出现错误:

对象不支持“addEventListener”属性或方法jquery.min.js,第4行第6105个字符

不知何故,除了ie8之外,我的所有代码在chrome和firefox上都没有问题。

这些错误也导致了以下问题:

属性"$"的值为null或未定义,不是Function对象

我使用以下方式将Jquery包含在其他js文件之上:

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>

我知道Jquery2+不支持IE8,但我不想使用低版本的Jquery。


导致这个错误的代码片段是什么? - AdityaSaxena
3个回答

39

jQuery 2.x已不支持IE < 9,因此如果您想支持IE7和8,则使用1.x分支的最新版本-现在是1.11.0

来自jQuery

jQuery 2.x具有与jQuery 1.x相同的API,但不支持Internet Explorer 6、7或8。jQuery 1.9升级指南中的所有注释也适用于此。由于IE 6/7/8仍然相对常见,建议除非您确定没有IE 6/7/8用户访问网站,否则请使用1.x版。


请注意,jQuery 1.x和2.x之间的区别不仅在于不支持<IE9。 jQuery未来针对非网站场景的错误修复只会在2.x中进行处理,正如jQuery所述:“随着jQuery 2.0的发布,有一些环境下jQuery团队将不再支持使用1.x线路,因为2.x是更好的选择。这些通常是不需要支持旧版IE的非网站场景。” - MartinR

11

就功能、错误修复等方面而言,jQuery 1.9与jQuery 2.0相当。它们都在积极开发中。

唯一的区别是,为了使文件大小和执行速度更好,删除了提供IE兼容性的代码。

如果您想根据浏览器使用不同的jQuery版本,则可以使用条件标签,如下所示。

<!--[if !IE]> -->
    <script src="jquery-2.0.0b2.js"></script>
<!-- <![endif]-->

<!--[if IE]>
    <script src="jquery-1.9.1.js"></script>
<![endif]-->

注意语法高亮显示。前两个注释是脚本标签的同级节点,后一个注释包含脚本标签。浏览器遵循DOM解析规则,加载/执行第一个脚本。IE会偏离规则,不会执行第一个脚本,但会执行后一个脚本。


0

jQuery 2.x已经不再支持IE < 9。但是您可以在同一个网页中使用多个jQuery版本

这可以通过jQuery.noConflict()来实现。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接