如果在客户端运行JavaScript时出现错误(甚至语法错误),是否有办法获得自动反馈?
我在考虑这样的事情:
<script src="debugger.js"></script>
<script>
// some script with an error in it
</script>
每次调试器发现错误时,它都会向服务器发送反馈。
答案 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本身递归调用错误,您最终可能会使用无用的垃圾填充日志。
此外,请准备好接收由以下内容引起的无法解决的错误:
答案 5 :(得分:0)
最简单的方法是从SiteApps Marketplace安装此应用程序:
http://siteapps.com/app/log_javascript_errors_with_ga-181
安装平台标签后,您可以安装很多应用程序,上面的那些对我来说非常有用。我在我开发的14个网站中使用它,我可以跟踪Google Analytics中的javascript错误。
希望这可以提供帮助。
Leandro的