2011-03-14 133 views
5

我正在開發一個Web應用程序。我的應用程序在Chrome和Firefox上運行良好,但由於某種原因,在IE中出現了一些錯誤。即使出現了幾個錯誤,應用程序仍然可以順利運行,沒有明顯的問題。IE - 防止在IE中顯示錯誤

我想隱藏最終用戶的錯誤,因爲他目前顯示一個小圖標表示發生了錯誤。

我該如何做到這一點?

謝謝

+2

(開玩笑):嘗試/抓住一切。 – 2011-03-14 17:50:17

回答

6

到目前爲止,要做的最好的事情是找出代碼導致錯誤的原因並解決該問題。

因爲這是專門在IE中發生的事情,你可以使用window.onerror處理(禁止)他們,如果他們運行時(不是編譯)錯誤,這從另一個回答您的評論聽起來像他們。從該鏈接:

要抑制的window事件默認Internet Explorer錯誤信息時,event對象的returnValue屬性設置爲true或者乾脆Microsoft JScript中返回true

onerror事件觸發運行時錯誤,但不會出現編譯錯誤。另外,通過腳本調試器引發的錯誤對話框不會被返回true所抑制。要關閉腳本調試器,請通過從工具菜單中選擇Internet選項來禁用Internet Explorer中的腳本調試。單擊高級選項卡,然後選擇適當的複選框(es)。

例子:

此代碼導致錯誤(因爲我想提領undefined):

document.getElementById('theButton').onclick = function() { 
    var d; 

    display(d.foo); 
}; 

Live copy

但是如果增加這一點,錯誤被壓制,因爲我們告訴IE我們處理了它:

window.onerror = function() { 
    // Return true to tell IE we handled it 
    return true; 
}; 

Live copy

3

據我所知,沒有這樣做,因爲你將被控制瀏覽器(又名應用程序)沒有真正的方法,這將是一件壞事。用戶可以manually turn off those errors,或者你可以看看你是否可以修復你的JavaScript。但是,除了這兩種解決方案之外,我認爲你運氣不好。

+0

@vondip:推薦作爲一個單獨的問題提出一個單獨的問題。 – 2011-03-14 16:28:08

+0

@ T.J。 Crowder-會的,謝謝 – vondip 2011-03-14 16:29:45

1

修正錯誤 - 大部分的時間,他們將一些小事,只有IE瀏覽器跳閘。對於這些情況,修復JSLint發現的問題有助於90%的東西:http://www.jslint.com/lint.html