IE9 中的 Jquery 2.1.1 get 错误:0x800a01b6 - Microsoft JScript 运行时错误:对象不支持属性或方法"addEventListener"



使用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一起工作。对解决这个问题有什么建议吗?

感谢您ῗᵲᄐᶌ和QBM5的评论,在这种情况下的答案是删除

<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>

相关内容

  • 没有找到相关文章