我正在处理的项目使用window.onerror事件处理程序来报告用户问题。我注意到单个用户似乎无法加载Google Analytics脚本。我们的网站没有看到很多流量,所以我不确定这是多么广泛,但到目前为止它似乎只影响一个用户。
他的用户代理是:“Mozilla / 5.0(Windows; U; Windows NT 5.1; en-US; rv:1.8.1.17)Gecko / 20080829 Firefox / 2.0.0.17”。 Firefox提供的错误消息是:“加载脚本时出错”。
附加说明:该网站引用了其他几个javascript文件。但是,分析引用是唯一一个外部域,并且是页面底部唯一的脚本引用,就在关闭正文标记之前。
是否还有其他人遇到此问题,或者知道可能存在什么问题?谢谢!
答案 0 :(得分:8)
在所有脚本加载完毕之前在Firefox中离开页面时会出现此问题。所以我认为忽略错误是安全的。
您在Firefox错误控制台中没有看到此错误,但您可以通过将警报绑定到window.onerror事件来使其可见。然后,您将能够在短时间内看到警告框,并在错误控制台中收到以下错误:
[11:35:57.428] uncaught exception: [Exception... "prompt aborted by user" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: resource:///components/nsPrompter.js :: openTabPrompt :: line 462" data: no]
我正在使用以下检查在我的onerror处理程序中忽略此错误:
if (navigator.userAgent.search('Firefox') != -1 && message === 'Error loading script') {
// Firefox generates this error when leaving a page before all scripts have finished loading
return;
}
答案 1 :(得分:2)
这是一个相当随机的猜测,但我想知道用户是否使用像NoScript这样的插件来控制脚本执行,并且不允许来自Google Analytics的脚本运行。我知道这是可能的,因为这就是我所做的:)我不知道这是否会显示为你所看到的错误。
答案 2 :(得分:2)
我有一个超过80页的网站,所有这些都使用了JavaScript错误捕获。我的网站每天服务超过2000页,我每天从Firefox浏览器中获得大约10个“错误加载脚本”脚本错误。它开始真的让我烦恼,我开始相信这是Firefox中的一个问题。
我可以打折NOSCRIPT建议,因为脚本会加载到我的页面中没有NOSCRIPT标签的位置。
我可以打折“外部域名”建议,因为我有两个站点遇到这个问题,在这两种情况下,JS库文件都位于站点自己的服务器上。
我已经使用JavaScript Lint仔细检查了每个库文件和网页,我发现了脚本错误和可疑的脚本技术。所有这些问题都已得到纠正,但这并没有为“错误加载脚本”问题提供任何治疗方法。
我的网页会加载几个没有此问题的JavaScript库文件,唯一的区别是文件的大小。大多数文件都在5KB以下,但问题文件是17KB。
库文件的大小可能是问题吗?
Aagh!
答案 3 :(得分:1)
我们遇到了同样的问题,在检查了我们的CDN日志之后,我们发现当脚本以HTTP状态“304 Not Modified”返回时,Firefox会触发onerror事件,因此缓存命中。实际上,Firefox(在撰写本文时使用Firefox 12测试过)似乎会触发除“200 Ok”之外的所有HTTP状态的onerror事件。其他浏览器在我们的实验中表现不同:Chrome(19)仅在“需要407代理身份验证”和100(101,204,4xx和5xx)上的Opera(12)上触发错误。
答案 4 :(得分:0)
我确信这个问题已经解决了很长时间..但对于任何偶然发现此页面的人来说:当外部脚本无法加载时,firefox会触发此错误(很容易找到在源代码中触发此代码的代码) 。我们在我们的网站上发现了这些错误,事实证明我们正在为脚本返回404,因此我建议将您的日志视为此错误的可能来源。