monitor-test
Version:
网页性能监控 18 项数据指标,浏览器信息,错误收集上报方案,前端工程化。
43 lines (35 loc) • 870 B
JavaScript
import { stores, pre } from '../../config'
import { getStackMessage, getPathSelect } from '../../utils'
import { send } from '../../sender/send'
export default () => {
window.addEventListener(
'error',
(e) => {
// 只处理 window 事件
if (e.target !== window) {
return
}
let message = e.message ?? ''
let stack = getStackMessage(e.error?.stack)
let filename = e.filename ?? ''
let position = e.lineno && e.colno && `${e.lineno}:${e.colno}`
let selector = window._lastEvent
? getPathSelect(window._lastEvent.path)
: ''
send(
stores.jsSyntax,
{
type: 'error',
subType: 'js_error',
message,
stack,
filename,
position,
selector
},
pre.jsSyntax
)
},
true
)
}