使用Visual Studio 2013,我迁移了一个混合型Asp。asp.net Webforms/MVC 3 web应用。Net Webforms/MVC 5.1。作为迁移的一部分,我使用NuGet包管理器将Jquery从1.9.1升级到2.1.1。
当我在Chrome中运行Visual Studio 2013调试器中的应用程序时,我没有问题。
当我在ie9的Visual Studio 2013调试器中运行应用程序时(不启用兼容模式),首先加载具有这两个脚本标签的母版页:
<script src="/Scripts/jquery-2.1.1.js" type="text/javascript"></script>
<script src="/Scripts/jquery-ui-1.10.4.js" type="text/javascript"></script>
失败,并显示以下Javascript错误:
Unhandled exception at line 3425, column 4 in http://localhost:25378/Scripts/jquery-2.1.1.js
0x800a01b6 - Microsoft JScript runtime error: Object doesn't support property or method 'addEventListener'
我意识到Jquery 2不能与ie8及以下版本一起工作,但我找不到任何说明ie9问题的文档。
错误发生在jquery-2.1.1.js的第3425行,在jQuery.ready.promise函数中:
document.addEventListener( "DOMContentLoaded", completed, false );
奇怪的是,当我在错误处停下来,在调试器中检查文档对象并展开"Methods"节点时,我可以看到"addEventListener"方法。这就好像Jquery没有权限看到这个方法。
我非常想升级到Jquery 2,从我读过的所有内容来看,Jquery 2应该可以与IE9一起工作。对解决这个问题有什么建议吗?
感谢您
<meta http-equiv="X-UA-Compatible" content="IE=8">
从母版页头,因为它把浏览器置于ie8兼容模式,而ie8不兼容JQuery 2.
我在VS2013 Ultimate中使用一个全新的web应用程序时遇到了同样的错误。原来IE11是在兼容模式下运行的——关闭该模式可以避免错误
我在IE8中使用JQuery时遇到了类似的异常。并找到了解决方案
<head id="Head1" runat="server">
<!--[if lt IE 9]>
<script src="/js/trirand/jquery-1.11.1.min.js" type="text/javascript"></script>
<![endif]-->
<!--[if gt IE 8]>
<script src="/js/trirand/jquery-2.1.1.min.js" type="text/javascript"></script>
<![endif]-->
</head>
如果需要,可以更改版本。
From code: IE8和较小版本支持jQuery1X版本
Jquery2x版本可以在IE9和更高版本中工作。
好运您可以在web配置文件中添加以下代码来设置文档模式:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-UA-Compatible" value="IE=EmulateIE9" />
</customHeaders>
</httpProtocol>
</system.webServer>