如果在客户端运行 JavaScript 时发生错误(甚至是语法错误),有没有办法获得自动反馈?
我在想这样的事情:
<script src="debugger.js"></script>
<script>
// some script with an error in it
</script>
每次调试器发现错误时,它都会向服务器发送反馈。
如果在客户端运行 JavaScript 时发生错误(甚至是语法错误),有没有办法获得自动反馈?
我在想这样的事情:
<script src="debugger.js"></script>
<script>
// some script with an error in it
</script>
每次调试器发现错误时,它都会向服务器发送反馈。
编辑:我最初误解了你的问题,这应该有效:
另请注意,这需要在任何可能导致错误的 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 就会死掉。根本没有办法处理。
一种技术是使用 Ajax 进行Javascript 错误记录
每个 javascript 错误都可以被困在 window.onerror 事件中。我们可以返回 true 或 false,以便我们可以选择用户是否应该看到正常的 javascript 错误对话框。万一发生 javascript 错误,该脚本将收集有关错误的信息并将 httprequest 发送到将 javascript 错误记录到数据库的页面。
我不确定语法错误,但可以使用 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
window.onerror = MyFunction(msg,url,line);
我们会弹出一个窗口,其中包含错误详细信息、浏览器类型(即 navigator.userAgent)等,所有这些都在标记为 READONLY 的字段中,并邀请用户提交它们。
我们有一个复选框“不再显示”,它存储在会话 cookie 中 - 因此,如果他们不断收到错误,则可以禁用弹出窗口。
尽管我们认为这“很酷”,但我们收到的报告很少——我不相信这是因为我们接近于零运行时错误!
最好每页只发送一份错误报告。如果您在重复计时器上遇到错误,或者 AJAX 本身递归调用错误,您最终可能会用无用的垃圾填充您的日志。
此外,请准备好接收由以下原因引起的无法解决的错误:
对我来说最简单的方法是从 SiteApps Marketplace 安装这个应用程序:
http://siteapps.com/app/log_javascript_errors_with_ga-181
一旦你安装了平台标签,你就可以安装很多应用程序,上面的一个对我来说非常有用。我在自己开发的 14 个网站中使用它,并且可以在 Google Analytics 中跟踪 javascript 错误。
希望这能有所帮助。
莱安德罗