window.onerror
似乎会丢弃真实的错误消息/位置,并且当违规脚本与页面本身位于不同的域时,始终会传递"Script error.", "", 0
。我有一个网站,其中包含用于页面和css / js的单独的www
和static
子域,这使得错误记录变得毫无用处。有没有办法正确记录这些错误?
答案 0 :(得分:2)
这听起来似乎没有解决方法(我在Mozilla IRC频道中询问过)。
我已提交这些错误报告以跟踪此问题。如果您对最佳解决方案有什么意见,请发信息:
答案 1 :(得分:1)
真正的解决方案是在所有代码中使用正确的try { ... } catch(e) { ... }
块。但是,据我所知,这可能并不总是一种选择。
如果您无法控制这些其他脚本,那么您的下一个最佳选择是通过JSONP将它们作为字符串加载,然后使用eval()
(是的,我知道eval is evil)来“注入” “他们进入当前页面。这样你仍然可以获得使用静态域的好处(没有cookie,CDN选项,额外的并发请求等),但JS最终会出现在页面的请求域中。
答案 2 :(得分:0)
在你的js文件中,在顶部尝试
document.domain = "yourdomain.com"