jquery 2.0.3不能与IE一起工作

时间:2013-09-13 06:30:11

标签: jquery

我有以下示例html文件:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Example</title>
    <script src="../Scripts/jquery-2.0.3.js"></script>
    <!--<script src="../Scripts/jquery-1.7.js"></script>-->
    <script type="text/javascript">
        $(document).ready(function () {
            $('#mainheader').css("color", "red");
        });
    </script>
</head>
<body>
    <h1 id="mainheader" class="header">Sample 1</h1>
    <h2 class="header info">Sample 2</h2>
    <h3 class="info">Sample 3</h3>
</body>
</html>

当我使用jQuery版本2.0.3运行时,它会遇到错误:

/Scripts/jquery-2.0.3.js第4栏第834行未处理的异常

0x800a01b6 - Microsoft JScript运行时错误:对象不支持此属性或方法

在线: //使用方便的事件回调 document.addEventListener(“DOMContentLoaded”,completed,false);

但如果我使用它的较低版本运行,即1.7,它可以正常工作......

但是,上述代码适用于Chrome上的两个版本。

请你帮我解决一下差异:

谢谢&amp;问候。

6 个答案:

答案 0 :(得分:11)

目前jQuery 2.x“不支持Internet Explorer 6,7或8”

来自http://api.jquery.com/jQuery.browser/

答案 1 :(得分:5)

由于没有人提及它(并且在评论中被提及),这是解决这个问题的另一种可能方法。这实际上是我建议您推出兼容性故障保护,以及我如何在我的项目中执行它。

正如许多人已经提到的,jQuery 2.x不再支持IE8及以下版本(with a lot of the major changes stemming back from 1.9 even)。丢失的原因是整体文件较小,性能更快。

话虽这么说,应用程序的理想目标是将jQuery 2.x用于支持的浏览器,同时为非浏览器提供兼容性。

所以我建议只使用jQuery 2.x文件(无论如何,如果您正在考虑应用程序的未来,那就是您应该使用的文件)。这里不太需要;只需像以前一样添加你的jQuery。

<!-- according to h5bp -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-2.0.3.min.js"><\/script>')</script>

然后,为了确保与旧的IE版本兼容,您可以有条件地包含patch file,以便在必要时对其进行处理。

<!--[if lte IE 8]>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<![endif]-->

这可以确保您为支持的浏览器提供更快,更精简的jQuery,并为其他人提供工作 jQuery,代价是基本上等同于额外的HTTP调用(可能更大的总数)带宽有效载荷)用于需要补丁时。

答案 2 :(得分:2)

From the site

  

jQuery 2.x与jQuery 1.x具有相同的API,但不支持   Internet Explorer 6,7或8。

如果您需要与旧的IE浏览器(或兼容模式下的最新浏览器)兼容,请使用1.x版本。 2.x版本是一个分支,删除了许多东西,其唯一用途是与那些旧浏览器的兼容性。

答案 3 :(得分:2)

那是因为版本2.0.3不支持IE8而1.7支持

答案 4 :(得分:2)

jQuery 2+版本不支持IE&lt; 9,如果您打算支持这些浏览器,请坚持使用最新的1.x分支版本 - 现在是1.10.2

答案 5 :(得分:0)

对于IE 11,您必须在HTML页面中包含以下内容

<!DOCTYPE html>
    <html>
    <head>
           <meta http-equiv="X-UA-Compatible" content="IE=edge;" />

如果你有旧的html 4.01 doctype标签,它就不起作用。