从另一个子域记录javascript错误

时间:2011-10-11 12:46:26

标签: javascript error-logging

Firefox和Chrome中的

window.onerror似乎会丢弃真实的错误消息/位置,并且当违规脚本与页面本身位于不同的域时,始终会传递"Script error.", "", 0。我有一个网站,其中包含用于页面和css / js的单独的wwwstatic子域,这使得错误记录变得毫无用处。有没有办法正确记录这些错误?

3 个答案:

答案 0 :(得分:2)

这听起来似乎没有解决方法(我在Mozilla IRC频道中询问过)。

我已提交这些错误报告以跟踪此问题。如果您对最佳解决方案有什么意见,请发信息:

https://bugzilla.mozilla.org/show_bug.cgi?id=696301

https://bugs.webkit.org/show_bug.cgi?id=70574

答案 1 :(得分:1)

真正的解决方案是在所有代码中使用正确的try { ... } catch(e) { ... }块。但是,据我所知,这可能并不总是一种选择。

如果您无法控制这些其他脚本,那么您的下一个最佳选择是通过JSONP将它们作为字符串加载,然后使用eval()(是的,我知道eval is evil)来“注入” “他们进入当前页面。这样你仍然可以获得使用静态域的好处(没有cookie,CDN选项,额外的并发请求等),但JS最终会出现在页面的请求域中。

答案 2 :(得分:0)

在你的js文件中,在顶部尝试

document.domain = "yourdomain.com"