ASP MVC3应用程序在IE8中引发JScript错误但在FireFox 4中有效

时间:2011-06-24 05:09:37

标签: jquery asp.net-mvc-3 internet-explorer-8

我有一个ASP MVC3应用程序在FireFox 4中运行良好(在VS 2010调试中)但是当我在IE8中运行应用程序时,我在jquery-1.5.1和jquery.validate.unobtrusive中遇到了一堆JScript错误。 / p>

在我的_SiteLayout.cshtml中,我包含了这样的JavaScript:

<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>     
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/QMSCommon.js")" type="text/javascript"></script>  

...

<!--bottom of layout page - just before /body -->
@(Html.Telerik().ScriptRegistrar().jQuery(false).DefaultGroup(group => group.Combined(true).Compress(true))) 

当我在IE8中运行此应用程序时,我立即在jquery.validate.unobtrusive.min.js中获得“Microsoft JScript运行时错误:'undefined'为null或不是对象”。如果我继续,我在JQuery-1-5-1中得到“Microsoft JScript运行时错误:对象不支持此属性或方法”。

我是否包含正确的JS文件 - 订单是正确的(或重要的)?

更新

我已将问题隔离到我的Javascript(在QMSCommon.js中)。该文件的全部内容如下:

$(document).ready(function () {
    //Make fields set to datePicker css class have a datepicker control
        $('.datePicker').datepicker(
            { buttonImage: '/content/images/calendar_edit.png',
              buttonImageOnly: true,
              showOn: 'both'
          }); 
});

如果我注释掉了datepicker部分我的网站在IE8中工作。您是否看到IE8不喜欢的代码?

2 个答案:

答案 0 :(得分:1)

好的,这有点令人尴尬。最初的问题是由于我没有包括jquery-ui脚本:-)。 Firefox没有抛出错误,IE确实如此,但不是在.datepicker,而是在jQuery深处,这让我失望。反正。

此外,我已更新我的代码以从Google获取JQuery内容:

效果很好。

答案 1 :(得分:0)

我建议使用console.log语句来查看为什么某些内容意外为null。检查调试器以查看堆栈跟踪。这可能有所帮助。你所展示的内容不可能告诉你更多。但是,单步执行或使用控制台语句来查看Firefox或Chrome和IE8中的内容偏差将帮助您解决此问题。

我注意到的一件事是IE 8在渲染事物时要慢得多,当它与其他浏览器不相关时会因为假设执行时间而与null相关。这可能是一个问题,如果您使用下划线,只需要使用setTimeout或_.defer推迟执行JavaScript。

如果您遇到更多问题,请更新问题或发表评论。