我正在运行一个 ASP.NET 站点,在那里我无法通过手动测试找到一些 JavaScript 错误。
是否有可能在客户端捕获所有 JavaScript 错误并将它们记录在服务器上,即在 EventLog 中(通过 Webservice 或类似的东西)?
我正在运行一个 ASP.NET 站点,在那里我无法通过手动测试找到一些 JavaScript 错误。
是否有可能在客户端捕获所有 JavaScript 错误并将它们记录在服务器上,即在 EventLog 中(通过 Webservice 或类似的东西)?
您可以尝试为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);
};
简短回答:是的,这是可能的。
更长的答案:人们已经写过关于如何(至少部分)通过编写自己的代码来解决这个问题的文章。但是,请注意,有些服务似乎可以确保所需的 JS 代码在许多浏览器中都能正常工作。我发现了以下内容:
我不能代表任何这些服务,因为我还没有尝试过。
我刚刚在工作中的项目上实现了服务器端错误日志记录 javascript 错误。有使用jQuery的遗留代码和新代码的混合。
我使用window.onerror
错误处理函数组合并包装 jQuery 事件处理程序和 onready 函数(请参阅:JavaScript 错误跟踪:为什么 window.onerror 不够用)。
window.onerror
: 捕获 IE 中的所有错误(以及 Firefox 中的大多数错误),但在 Safari 和 Opera 中不执行任何操作。一旦我发现了错误,我就会向它添加一些额外的属性(url、浏览器等),然后使用 ajax 调用将其发回服务器。
在服务器上,我有一个小页面,它只接受发布的参数并将它们输出到我们的普通服务器日志框架。
我想为此开源代码(作为 jQuery 插件)。如果有人有兴趣让我知道,这将有助于说服老板!
如果您使用 Google Analytics,您可以将 javascript 错误记录到 Google Analytics Events 中。
查看此应用程序:http : //siteapps.com/app/log_javascript_errors_with_ga-181
希望能帮助到你。
另外我推荐使用TraceTool实用程序,它带有 JavaScript 支持,对于 JS 监控非常方便。