2010-04-18 55 views
2

我使用window.onerror來提醒javascript錯誤進行調試。firefox window.onerror事件問題 - 警報「腳本錯誤!」只有

window.onerror = function(msg, url, line) { 
    alert(msg + '\nLine: ' + line); 
}; 

當一個錯誤被觸發時,它可以在IE中提醒這個實際的錯誤信息。但在Firefox中,它只是提醒「腳本錯誤!」,但我仍然可以在firefox的錯誤控制檯中看到實際的錯誤消息。

我記得幾個月前,當我在另一個項目上工作時,firefox沒有這樣工作。但我目前無法獲得該項目的代碼。所以我想知道這有什麼可能的問題?

回答

0

我現在知道答案了。在我將文件上傳到web服務器(實際上是localhost)後,通過http://localhost/path/to/the/file.html訪問它,window.onerror事件按預期工作(如在IE中,提醒實際的錯誤消息而不是「腳本錯誤」)。但通過file:/// D:/path/to/the/file.html

在本地訪問文件時,它不起作用無法弄清楚原因?

+0

默認情況下,IE不會從文件系統的文件上運行JavaScript。打開Internet選項 - >高級 - >'從我的電腦運行活動內容'以在文件系統上進行測試,或者添加「網絡標記」。 http://msdn.microsoft.com/en-us/library/ms537628%28VS.85%29.aspx – bobince 2010-04-18 23:44:56

+0

是的,可能與安全設置有關。但是,無論「從我的電腦運行活動內容」處於打開還是關閉狀態,IE始終都會提示實際的錯誤消息。但火狐只是提醒「sxript錯誤」,而不是本地文件系統上的文件的實際錯誤消息。 – powerboy 2010-04-19 00:25:44

+0

適合我。讓我們有一個完整的測試案例。 – bobince 2010-04-19 08:33:51

1
window.onerror(function(msg, url, line) { 

你的意思是:

window.onerror= function(msg, url, line) { 
+0

對不起,這是一個錯字。 – powerboy 2010-04-18 21:49:19

0

您需要確保您的腳本所服務的域與您的頁面域相同。如果兩者相同,你應該能夠得到正確的文件名和行號。

檢查了IE8,FF 3.6和Chrome 10 beta秒前。