Window對(duì)象的onerror屬性是一個(gè)事件處理程序对供,當(dāng)未捕獲的異常傳播到調(diào)用棧上時(shí)就會(huì)調(diào)用它吭从,并把錯(cuò)誤信息輸出到瀏覽器的JavaScript控制臺(tái)上便脊。
window.onerror = function (message, filename, lineno, colno, error) {
console.log("出錯(cuò)了胶台!--> %s", error.stack);
};
五個(gè)參數(shù)的含義:
message:出錯(cuò)信息
filename:出錯(cuò)腳本的網(wǎng)址
lineno:行號(hào)
colno:列號(hào)
error:錯(cuò)誤對(duì)象
老式瀏覽器只支持前三個(gè)參數(shù)假褪。
并不是所有的錯(cuò)誤署咽,都會(huì)觸發(fā)JavaScript的error事件(即讓JavaScript報(bào)錯(cuò)),只限于以下三類(lèi)事件嗜价。
- JavaScript語(yǔ)言錯(cuò)誤
- JavaScript腳本文件不存在
- 圖像文件不存在
以下兩類(lèi)事件不會(huì)觸發(fā)JavaScript的error事件艇抠。
- CSS文件不存在
- iframe文件不存在
注意:onerror處理程序的返回值也很重要。如果onerror處理程序返回false久锥,它通知瀏覽器事件處理程序已經(jīng)處理了錯(cuò)誤家淤,不需要其他操作。也就是說(shuō)瑟由,瀏覽器不應(yīng)該顯示它自己的錯(cuò)誤信息絮重。由于歷史原因,F(xiàn)irefox里的錯(cuò)誤處理程序必須返回true來(lái)表示它已經(jīng)處理了錯(cuò)誤歹苦。