2008-10-10 177 views
13

我正在處理的項目使用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給出的錯誤消息是:「加載腳本時出錯」。Firefox'加載腳本時出錯'加載FF2中的Google Analytics

補充說明:該網站引用了其他幾個JavaScript文件。但是,分析引用是唯一一個外部域,並且是頁面底部的唯一腳本引用,位於關閉正文標記之前。

有沒有其他人跑過這個,或者有什麼想法可能是什麼問題?謝謝!

回答

2

這是一個相當隨意的猜測,但我想知道用戶是否使用像NoScript這樣的附加組件來控制腳本執行,並且不允許Google Analytics腳本運行。我知道這是可能的,因爲這是我所做的:)我不知道這是否會顯示爲您看到的錯誤。

2

我有一個網站超過80頁,所有使用JavaScript錯誤捕獲。我的網站每天服務超過2000頁,每天從Firefox瀏覽器收到大約10次「錯誤加載腳本」腳本錯誤。它開始真的讓我煩惱,我開始相信這是Firefox的一個問題。

我可以打折NOSCRIPT的建議,因爲腳本加載在我的網頁頭沒有NOSCRIPT標籤。

我可以打折'外部域'的建議,因爲我有兩個網站遭受這個問題,在這兩種情況下JS庫文件都位於網站自己的服務器上。

我已經仔細檢查了每個庫文件和使用JavaScript Lint的網頁,並且發現了腳本錯誤和可疑的腳本技術。所有這些問題都得到了糾正,但這並沒有爲「錯誤加載腳本」問題提供任何解決方法。

我的頁面會加載一些沒有這個問題的JavaScript庫文件,唯一的區別就是文件的大小。大多數文件都在5KB以下,但問題文件是17KB。

庫文件的大小可能是問題嗎?

啊!

0

我相信這個問題已經解決了很長時間了......但是對於任何一個在這個頁面上絆倒的人:當外部腳本無法加載時,這個錯誤是由firefox觸發的(很容易找到在源代碼中觸發這個代碼的代碼)。我們在我們的網站上發現了這些錯誤,結果發現我們正在爲該腳本返回404,所以我建議將您的日誌視爲此錯誤的一個可能來源。

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; 
} 
+0

對於那些可能使用Airbrake/Hoptoad的Airbrake支持評論可能會有幫助:[Overriding Hoptoad.notify](http://help.airbrake.io/discussions/questions/509-bypass-specific-errors), [用於過濾錯誤的測試代碼](http://help.airbrake.io/discussions/suggestions/335-error-loading-script-errors-in-firefox) – Sarge 2012-03-11 15:05:17

1

我們有同樣的問題和檢查我們的CDN登錄後,我們發現,Firefox的觸發onerror事件時的腳本,HTTP狀態「304未修改」,所以緩存命中返回。實際上,Firefox(在本文寫作時用Firefox 12進行測試)似乎會觸發除「200 Ok」以外的所有HTTP狀態的錯誤事件。其他瀏覽器在我們的實驗中表現不同:Chrome(19)僅在需要'407 Proxy Authentication'時觸發了錯誤,而在100,101,204,4xx和5xx上觸發了Opera(12)。