我正在运行一个ASP.NET站点,在该站点中,我只能通过手动测试来查找一些JavaScript错误。
是否有可能在客户端捕获所有JavaScript错误,并将其记录在服务器上(即通过Webservice或类似方式记录在EventLog中)?
我正在运行一个ASP.NET站点,在该站点中,我只能通过手动测试来查找一些JavaScript错误。
是否有可能在客户端捕获所有JavaScript错误,并将其记录在服务器上(即通过Webservice或类似方式记录在EventLog中)?
Answers:
您可以尝试为onerror事件设置自己的处理程序,并使用XMLHttpRequest告诉服务器出了什么问题,但是由于它不是任何规范的一部分,因此支持有些不稳定。
这是使用XMLHttpRequest记录JavaScript错误的示例:
window.onerror = function(msg, url, line)
{
var req = new XMLHttpRequest();
var params = "msg=" + encodeURIComponent(msg) + '&url=' + encodeURIComponent(url) + "&line=" + line;
req.open("POST", "/scripts/logerror.php");
req.send(params);
};
setInterval
方法错误。网络上有许多JS错误报告服务。结帐ErrLytics。它还为您提供网站上每个用户操作的分析。
简短的回答:是的,有可能。
更长的答案:人们已经写了关于如何(至少部分)通过编写自己的代码来解决此问题的方法。但是,请注意,那里提供的服务似乎已确保所需的JS代码在许多浏览器中都能正常工作。我发现以下内容:
由于我还没有尝试过这些服务,所以我无法代表他们。
我刚刚在工作中的项目上实现了在JavaScript错误上记录服务器端错误。使用jQuery混合了旧代码和新代码。
我window.onerror
将jQuery事件处理程序和onready函数与错误处理函数结合使用,并将它们包装在一起(请参阅:JavaScript错误跟踪:为什么window.onerror不够用)。
window.onerror
:捕获IE中的所有错误(以及Firefox中的大多数错误),但在Safari和Opera中不执行任何操作。发现错误后,我向其中添加了一些其他属性(URL,浏览器等),然后使用ajax调用将其发布回服务器。
在服务器上,我有一小页,它只接收发布的参数并将其输出到我们的普通服务器日志记录框架。
我想为此开源代码(作为jQuery插件)。如果有人感兴趣,请告诉我,这将有助于说服老板!
如果您使用Google Analytics(分析),则可以将JavaScript错误记录到Google Analytics(分析)事件中。
看到这个程序:http : //siteapps.com/app/log_javascript_errors_with_ga-181
希望能帮助到你。