home/upgrade-your-browser/js/er3eport.js
2021-09-25 22:57:18 +08:00

60 lines
1.8 KiB
JavaScript

// simple error report by baidu tongji
var _hmt = _hmt || [];
var er3eport = {};
er3eport.start = (new Date().getTime());
er3eport.codetime = function () {
return (new Date().getTime()) - er3eport.start;
};
er3eport.dodnt = function () {
window.dnt = 1; if (typeof window.dodnt === 'function') window.dodnt();
};
er3eport.jqdefined = function () {
_hmt.push(['_setCustomVar', 2, 'JSERROR', 'jQueryDefined' + ' # ' + er3eport.codetime(), 3]);
er3eport.dodnt();
};
er3eport.listener = function (msg) {
var logstr = false;
var errtype = 'JSERROR';
if (typeof msg === 'string') {
logstr = msg;
} else {
if (msg.error) logstr = msg.error.stack;
else if (msg.message) logstr = msg.message;
var src;
if (msg.srcElement && msg.srcElement.src) src = msg.srcElement.src;
else if (msg.target && msg.target.src) src = msg.target.src;
if (! logstr) {
if (src) {
logstr = 'FileError: ' + src;
errtype = 'FILEERROR';
} else if (msg.type) {
logstr = msg.type;
}
}
}
if (typeof logstr !== 'string') {
logstr = 'empty_error_string'
} else {
logstr = logstr.replace(/\n/g, '').replace(/\s+/g, ' ');
}
_hmt.push(['_trackEvent', errtype, window.location.pathname, logstr + ' #UA# ' + navigator.userAgent + ' # ' + er3eport.codetime()]);
return true;
}
if (typeof jQuery === 'function') er3eport.jqdefined();
if (Object.defineProperty) Object.defineProperty(window, 'jQuery', {set: er3eport.jqdefined});
if (window.addEventListener) {
window.addEventListener('error', er3eport.listener, true);
} else if (window.attachEvent) {
window.attachEvent('onerror', er3eport.listener);
}