2011-02-27 62 views
8

是否有可能跟踪访问者遇到的JS错误?很明显,我们做了我们自己的测试,但有时访问者会运行某个浏览器版本,或者有一个特定的插件,它会导致JS错误。同样有时候,JS中的错误会被忽视。跟踪访客JS错误?

如果我们能够以某种方式捕获这些事件,并在服务器上显示一个脚本并提供错误的详细信息,以便我们尝试修复此问题,那将非常有用。

更新: 感谢您的反馈意见。发布后通常我设法找到:
Logging Clientside JavaScript Errors on Server
这对window.onerror的东西,也对jQuery和火狐的onerror仍没有得到修复多年的bug一些有趣的事情...

回答

4

是的,使用window.onerror。

对于AJAX日志记录部分,不要依赖发生错误后可能运行的任何代码。您可能希望通过使用动态插入的脚本标记(其源设置为您的服务器脚本并将数据作为GET参数)使请求保持尽可能简单。但是,请注意,使用GET会限制您在src路径中的字符数(在IE中约为2000)。

然而,你要做到这一点,保持它很简单是很重要的,因为你不希望你的错误日志代码在它最有可能运行的情况下(边缘情况)容易出错。

您需要在非生产环境中禁用此功能,否则可能会掩盖问题。

2

您可以使用JS中的onerror事件来获取错误的详细信息。 Hoptoad例如做到这一点并记录错误的控制台,他们的代码重新使用大量漂亮的JS脚本,包括功能的printStackTrace这是伟大的.....

你可以看到他们是如何做到这一点的位置:

http://hoptoadapp.com/javascripts/notifier.js