UNPKG

u-spa

Version:

SPA应用监控工具,监听url变化、首屏加载指标、js-error、image-error 并上报

53 lines (52 loc) 1.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var uploadData_1 = require("./uploadData"); var utils_1 = require("./utils"); var initRequestUrlValue = ''; var initHostUrlValue = ''; var initCookieNameValue = ''; var monitorErrorInitFn = function (obj) { var requestUrl = obj.requestUrl, hostUrl = obj.hostUrl, cookieNameKey = obj.cookieNameKey; initRequestUrlValue = requestUrl; initHostUrlValue = hostUrl; initCookieNameValue = cookieNameKey; // const oldErrorLog = console.error; var userName = (0, utils_1.getUserName)(initCookieNameValue); window.onunhandledrejection = function (e) { throw new Error(e.reason.stack); }; // 设置成 true 是捕获阶段,可以获取图片加载失败的情况, 冒泡阶段获取不到 window.addEventListener('error', function (e) { var message = e.message, filename = e.filename, lineno = e.lineno, colno = e.colno, error = e.error; var imageSrc = (e.target && e.target.src) || ''; var reqObj; if (imageSrc) { reqObj = { type: 'image-error', userName: userName, value: imageSrc, userAgent: navigator.userAgent, visitTime: (0, utils_1.getCurrentDate)(), }; } else { var obj_1 = { filename: filename, lineno: lineno, colno: colno, message: message }; reqObj = { type: 'js-error', userName: userName, value: JSON.stringify(obj_1), userAgent: navigator.userAgent, // visitTime: getCurrentDate(), }; } if (initHostUrlValue === location.host) { (0, uploadData_1.postRequest)(initRequestUrlValue, reqObj); } }, true); }; exports.default = monitorErrorInitFn;