为什么在 Firefox 更新后 JQuery 在我的 MVC 4 应用程序中不起作用?
Why is JQuery not working in my MVC 4 application after Firefox Update?
我一直在用 VS 编写 ASP.NET MVC 4 项目。我让它在旧版本的 Firefox 和 IE 11 中完美运行。它在 IE 11 中仍然运行良好,但在我将 FF 更新到 35.0.1 后,我的脚本无法运行。如何让我的脚本在最新版本的 Firefox 中运行?
我的 _Layout 视图包含以下脚本:
......
@Scripts.Render("~bundles/jquery")
<script>
$.ajax({
url: '@Url.Action("Action", "Controller")',
type: 'post',
cache: 'false,
async: 'true',
data: '{}',
success: function(result){
$('#progress').html(result);
}
});
$(document).ready(function(){
function RefreshPartial(){
setTimeout(function(){
loadPartialView();
RefreshPartial();
}, 3000);
}
RefreshPartial();
});
</script>
@RenderSection("scripts", required: false)
</body>
......
在 Firefox/Fox 它击中了
"$(document).ready(function () {"
行然后跳到脚本底部
});
在前往 Jquery 之前。它永远不会回到我的内联 JS。它抛出以下异常:"SyntaxError: An Invalid or illegal string was specified" 在下面的 "if" 语句中:
3093 for ( ; list && firingIndex < firingLength; firingIndex++ ) {
3094 if ( list[ firingIndex ].apply{ data[ ], data[ 1 ] ) == false && options.stopOnFalse ) {
memory = false;
break;
}
}
它多次循环 for 语句,然后在同一个 if 语句中抛出错误:"TypeError: Constructor Document requires 'new'"。
它从不运行我的内联脚本,所以我的局部视图从不加载。同样,这只发生在最新版本的 FF 中。
Firefox 35.0.1 不喜欢以下的长版本:
$(document).ready(function(){
我的代码使用 shorthand 版本:
$(function() {
我不知道为什么,但它马上起作用了。
我看不出它为什么不起作用...您尝试过做一个简单的 jquery 警报吗?它有效吗?删除 ajax 呼叫并发出警报,如果您的警报正常工作,那么您的 jquery 正在工作。否则您可能没有正确链接 jquery。如果警报有效,请尝试简单的命中或未命中 ajax 呼叫。
$.ajax( "example.php" )
.done(function() {
alert( "success" );
})
.fail(function() {
alert( "error" );
})
.always(function() {
alert( "complete" );
});
编辑:没有理由 FF 不能与 $(document).ready(function(){});
一起使用
我目前将它用于 Web 服务,它适用于:safari、chrome、FF 和 IE 以及四五个移动浏览器。
我一直在用 VS 编写 ASP.NET MVC 4 项目。我让它在旧版本的 Firefox 和 IE 11 中完美运行。它在 IE 11 中仍然运行良好,但在我将 FF 更新到 35.0.1 后,我的脚本无法运行。如何让我的脚本在最新版本的 Firefox 中运行?
我的 _Layout 视图包含以下脚本:
......
@Scripts.Render("~bundles/jquery")
<script>
$.ajax({
url: '@Url.Action("Action", "Controller")',
type: 'post',
cache: 'false,
async: 'true',
data: '{}',
success: function(result){
$('#progress').html(result);
}
});
$(document).ready(function(){
function RefreshPartial(){
setTimeout(function(){
loadPartialView();
RefreshPartial();
}, 3000);
}
RefreshPartial();
});
</script>
@RenderSection("scripts", required: false)
</body>
......
在 Firefox/Fox 它击中了
"$(document).ready(function () {"
行然后跳到脚本底部
});
在前往 Jquery 之前。它永远不会回到我的内联 JS。它抛出以下异常:"SyntaxError: An Invalid or illegal string was specified" 在下面的 "if" 语句中:
3093 for ( ; list && firingIndex < firingLength; firingIndex++ ) {
3094 if ( list[ firingIndex ].apply{ data[ ], data[ 1 ] ) == false && options.stopOnFalse ) {
memory = false;
break;
}
}
它多次循环 for 语句,然后在同一个 if 语句中抛出错误:"TypeError: Constructor Document requires 'new'"。 它从不运行我的内联脚本,所以我的局部视图从不加载。同样,这只发生在最新版本的 FF 中。
Firefox 35.0.1 不喜欢以下的长版本:
$(document).ready(function(){
我的代码使用 shorthand 版本:
$(function() {
我不知道为什么,但它马上起作用了。
我看不出它为什么不起作用...您尝试过做一个简单的 jquery 警报吗?它有效吗?删除 ajax 呼叫并发出警报,如果您的警报正常工作,那么您的 jquery 正在工作。否则您可能没有正确链接 jquery。如果警报有效,请尝试简单的命中或未命中 ajax 呼叫。
$.ajax( "example.php" )
.done(function() {
alert( "success" );
})
.fail(function() {
alert( "error" );
})
.always(function() {
alert( "complete" );
});
编辑:没有理由 FF 不能与 $(document).ready(function(){});
一起使用
我目前将它用于 Web 服务,它适用于:safari、chrome、FF 和 IE 以及四五个移动浏览器。