我有以下示例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;问候。
答案 0 :(得分:11)
目前jQuery 2.x“不支持Internet Explorer 6,7或8”
答案 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)
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标签,它就不起作用。