自动反馈JavaScript错误

时间:2009-02-13 17:59:59

标签: javascript debugging feedback

如果在客户端运行JavaScript时出现错误(甚至语法错误),是否有办法获得自动反馈?

我在考虑这样的事情:

<script src="debugger.js"></script>
<script>
    // some script with an error in it
</script>

每次调试器发现错误时,它都会向服务器发送反馈。

6 个答案:

答案 0 :(得分:16)

编辑:我最初误解了你的问题,这应该有效:

另请注意,这需要在任何可能导致错误的JavaScript之前进行。

window.onerror = function(msg,u,l)
{
    txt ="Error: " + msg + "\n";
    txt+="URL: " + u + "\n";
    txt+="Line: " + l + "\n\n";
    //Insert AJAX call that passes data (txt) to server-side script
    return true;
};

至于语法错误,你运气不好。当语法错误时,Javascript会死掉。根本没办法处理它。

答案 1 :(得分:9)

一种技巧是将Ajax用于Javascript error logging

每个javascript错误都可能被困在window.onerror事件中。我们可以返回true或false,以便我们可以选择用户是否应该看到正常的javascript错误对话框。 在非常不可能发生javascript错误的情况下,此脚本将收集有关错误的信息,并将httprequest发送到将javascript错误记录到数据库的页面。

答案 2 :(得分:4)

我不确定语法错误,但可以使用window.onerror事件捕获js错误。在谷歌中搜索“javascript中的日志记录错误”会给你带来很多结果......

将JavaScript错误记录到ASP.NET: http://james.newtonking.com/archive/2006/05/02/Logging-JavaScript-Errors-To-ASP.NET.aspx (不幸的是,帖子中的下载链接被破坏了。)

将客户端JavaScript错误记录到服务器: http://www.codeproject.com/KB/ajax/logclientsidejserrors2srv.aspx

JavaScript错误通知: http://www.thecodepage.com/post/JavaScript-Error-Notifications.aspx

答案 3 :(得分:0)

window.onerror = MyFunction(msg,url,line);

我们会在标记为READONLY的字段中弹出一个包含错误详细信息,浏览器类型(即navigator.userAgent)等的窗口,并邀请用户提交它们。

我们有一个复选框“不再显示此内容”,它存储在一个会话cookie中 - 所以如果他们一直收到错误而不能禁用弹出窗口。

尽管我们认为这是“非常酷”,但我们收到的报告却很少 - 而且我不相信这是因为我们接近零运行时错误!

答案 4 :(得分:0)

可能最好每页只发送一个错误报告。如果在重复计时器上出现错误,或者AJAX本身递归调用错误,您最终可能会使用无用的垃圾填充日志。

此外,请准备好接收由以下内容引起的无法解决的错误:

  • 安全代理人使用您的代码
  • 来自被阻止网站的
  • 脚本
  • 扩展程序中不重要的浏览器Chrome错误
  • IE Mobile,世界上最差的浏览器

答案 5 :(得分:0)

最简单的方法是从SiteApps Marketplace安装此应用程序:

http://siteapps.com/app/log_javascript_errors_with_ga-181

安装平台标签后,您可以安装很多应用程序,上面的那些对我来说非常有用。我在我开发的14个网站中使用它,我可以跟踪Google Analytics中的javascript错误。

希望这可以提供帮助。

Leandro的