前端錯(cuò)誤可歸納為兩種類型,捕獲方式如下:
1.即時(shí)運(yùn)行錯(cuò)誤(代碼錯(cuò)誤)
try{
//代碼
}catch(e){
//錯(cuò)誤信息
}
window.addEventListener('error', function(e){
//錯(cuò)誤信息
})
2.資源加載錯(cuò)誤
onerror 事件
http://www.w3school.com.cn/jsref/event_onerror.asp
支持該事件的 HTML 標(biāo)簽:<img>, <object>, <style>
支持該事件的 JavaScript 對(duì)象:window, image
performance.getEntries()
https://developer.mozilla.org/en-US/docs/Web/API/Performance/getEntries
返回一個(gè)數(shù)組,顯示該頁(yè)面所有靜態(tài)資源的Timing信息,每個(gè)數(shù)組成員就是一個(gè)PerformanceResourceTiming對(duì)象
window.addEventListener('error', function(e){
//錯(cuò)誤信息
}, true)
上報(bào)錯(cuò)誤:
利用Image對(duì)象上報(bào)
(new Image()).src = "錯(cuò)誤上報(bào)地址?err=錯(cuò)誤信息"
//頁(yè)面埋點(diǎn)通常也使用這種方式上報(bào)
利用ajax通訊上報(bào)
//與ajax請(qǐng)求類似