首先將testError方法綁定給onerror事件,然后在test方法里觸發一個錯誤,在IE中執行時我們發現如下提示: --------------------------- Microsoft Internet Explorer --------------------------- 參數個數:3個 參數1:'error' 未定義 參數2:file://E:/yanwei/test/testError.html 參數3:14 --------------------------- 確定 --------------------------- 可以發現,當出錯時函數testError捕獲到了三個參數。通過將函數綁定到onerror事件就可以在頁面出錯時捕獲以上三個參數。
在測試中還發現以下一些問題: 1、通過在函數末尾加上return true,可以在函數出錯時不會彈出系統的錯誤信息(IE)。 2、如果頁面出現多次錯誤,只捕獲第一次錯誤并進行處理然后終止后面程序的執行。 3、onerror事件并不能捕獲所有的錯誤,只能捕獲函數外或函數內錯誤(??這個是什么意思,可不是開玩笑呢),如 adasdf; function test(){ aaaa; } 可以捕獲到adasdf未定義的錯誤 function test(){ aaaa; } 可以捕獲到aaaa未定義的錯誤,而對于functiona test(){}或function test()dd{} 的錯誤卻不能捕獲而會直接彈出系統錯誤信息。 4、onerror在IE和FF等瀏覽器執行方式是一樣的,而且都包含這三個參數。