Firefox没有't在AJAX上显示javascript错误'线程'
Firefox doesn't show javascript errors on AJAX 'threads'?
我有一个函数test_fn
,它有两种调用方式:
(a) 根据按钮的onclick
属性;或者(b)来自jQuery AJAX调用的success
函数,如下所示:
$.ajax({
type: 'POST',
...
success: function(data) {
test_fn();
}
});
我注意到我的Firefox(Linux上的3.6.17)错误控制台似乎没有向我显示AJAX成功函数调用的代码中出现的任何javascript错误。然而,它确实像往常一样在GUI操作运行的代码中显示错误。
例如,如果我的测试函数test_fn
定义如下:
function test_fn() {
blah
}
当通过单击按钮调用test_fn
时,我会在错误控制台上看到明显的javascript错误报告,但当我的代码进行(成功的)AJAX调用并以这种方式调用test_fn
时,则不会。
我在网上浏览过,没有看到任何类似"AJAX‘线程’不记录他们的javascript错误"之类的东西。我的很多javascript都是在AJAX回调中执行的。。。我想知道这种行为是不是在什么地方/不知怎么地发生了。我对此有点不安;当一个人的Javascript无声地失败时,很难在没有错误消息或行号的情况下找到位置。
有人能提供任何帮助或建议吗?谢谢
您尝试过吗:
$.ajax({
type: 'POST',
...
success: function(data) {
test_fn();
},
error: function(jqXHR, textStatus, errorThrown){
// Aw Snap... Check textStatus maybe?
}
});
您可以将整个事件包装在try...catch
语句中,并在出现异常时对其进行日志记录。这可能会有点乏味,所以你可能想制作一个函数,它返回一个为你包装函数的函数:
function wrap(func) {
return function wrapped() {
try {
func.apply(this, arguments);
}catch(ex) {
if(console&&console.error) {
console.error(ex);
}else{
alert(ex);
}
}
};
}
这样使用:
$.ajax({
...
success: wrap(function(data) {
// Test it by generating an error by calling a number.
(1)();
})
});
相关文章:
- 如果函数返回True,则显示Javascript按钮
- 背景图像前显示Javascript警报
- 为我的rails应用程序显示javascript弹出消息
- 如何在Javascript中显示Javascript变量
- 如何在colorbox中显示JavaScript变量
- Xamarin iOS WKWebView显示JavaScript警报
- GoogleMapsV3api只显示Javascript循环中的一些标记
- 如何在Asp.net标签控件中显示Javascript函数值
- 如何在对话框中显示javascript变量
- 在asp.net页面中显示javascript执行过程中的加载图标
- 在html中显示javascript变量won'不起作用
- 如何使用按钮在对话框上显示 Javascript 函数的结果
- 打开新窗口进行打印时不显示 JavaScript 图像
- 显示javascript控制台中的消息
- 在加载html网页时显示JavaScript表
- 在Notepad++中更好地突出显示Javascript语法
- 通过php显示javascript内容
- 文本字段未显示javascript函数中的变量
- 显示Javascript表单验证消息
- VB.NET-WebBrowser没有't在html源代码中显示javascript创建的html元素