2011-01-31 76 views
7

我有一個頁面,其中的神祕JavaScript錯誤不斷彈出。它們似乎來自我們使用的應用程序,並不擁有它的來源。我正在研究這個問題的一個真正的解決方案,但是我們明天有一個演示,我想知道是否有一種方法可以將頁面範圍內的JS錯誤全部抑制掉(就像在一個巨大的try catch中包裝所有的javascript組件一樣)。有沒有辦法嘗試/動態捕捉整個頁面?

+1

什麼是一個巨大的嘗試捕捉該怎麼辦?它會讓你的代碼無聲地失敗,無法正常工作。 – 2011-01-31 02:50:56

+0

@馬特很好,它是否適合演示...查看更多信息[這裏](http://stackoverflow.com/questions/2822397/suppress-done-but-with-errors-on-page-in-ie )。一個巨大的try/catch似乎是選擇 – 2011-01-31 02:52:43

回答

9

你可以一個處理程序添加到window.onerror事件。在這種情況下,窗口內發生的所有錯誤將被重定向到此事件的處理程序。 (我沒有測試這在Firefox和它的工作,但我有Chrome瀏覽器與它的麻煩 - 我的Chrome安裝是相當弄亂了,所以這可能是問題,但也有提交,涉及到這個問題,鉻錯誤:bug #7771bug #8939

window.onerror = function (msg, url, line) { 
    alert("Error on line " + line + " in " + url + ":\n" + msg); 
    // return true to prevent browser from displaying error 
    return true; 
}