【问题标题】:Object doesn't support addEventListener IE8 in jquery对象不支持 jquery 中的 addEventListener IE8
【发布时间】:2014-10-13 21:37:57
【问题描述】:

我使用的是 Jquery 2.0.2,但在 IE8 中出现错误:

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

不知何故,我的所有代码都可以在 chrome 和 firefox 上使用,除了 ie8。

出现这些错误还会导致:

属性'$'的值为空或未定义,不是函数对象

我将查询包含在我使用的其他 js 文件之上:

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

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

【问题讨论】:

  • 导致此错误的代码片段是什么?

标签: javascript jquery


【解决方案1】:

jQuery 2.x 已经放弃对 IE 1.11.0

来自jQuery

jQuery 2.x 与 jQuery 1.x 具有相同的 API,但不支持 Internet Explorer 6、7 或 8。jQuery 1.9 升级中的所有注释 指南也适用于此。由于 IE 6/7/8 还是比较常见的, 我们建议使用 1.x 版本,除非您确定没有 IE 6/7/8 用户正在访问该网站。

【讨论】:

  • 请记住,jQuery 1.x 和 2.x 之间的区别不仅在于弃用了对 随着 jQuery 2.0 的发布,jQuery 团队将在一些环境中不更长的支持使用 1.x 线,因为 2.x 是一个更好的选择。这些通常是与旧版 IE 支持无关的非网站场景。
【解决方案2】:

就功能、错误修复等而言,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]-->

注意语法高亮。第一个只是两个 cmet,它们是 script 标签的兄弟,而后者是一个带有 script 标签的注释。浏览器只是遵循 DOM 解析规则,并加载/执行第一个脚本。 IE 偏离并不会执行第一个,但会执行后者。

【讨论】:

    【解决方案3】:

    jQuery 2.x 已放弃对 IE 在同一网页中使用多个 jQuery 版本。

    这可以使用jQuery.noConflict()来完成

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-14
      • 1970-01-01
      • 2017-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多