var WX_BJ_REPORT = window.WX_BJ_REPORT || {}; ( function ( _ ) { if ( _.BadJs ) { return; } var BADJS_WIN_ERR = 'BadjsWindowError'; var extend = function ( source, destination ) { for ( var property in destination ) { source [ property ] = destination [ property ] } return source } _.BadJs = { uin: 0, mid: "", view: "wap", _cache: {}, _info: {}, _hookCallback: null, ignorePath: true, throw: function ( e, extData ) { this.onError ( e, extData ) ; throw e; }, onError: function ( e, extData ) { try { if ( e.BADJS_EXCUTED == true ) { return; } e.BADJS_EXCUTED = true; var data = errToData ( e ) ; data.uin = this.uin; data.mid = this.mid; data.view = this.view; data.cmdb_module = 'mmbizwap'; if ( !!extData ) { data = extend ( data, extData ) ; } if ( data.cid ) { data.key = " [ " + data.cid + " ] :" + data.key; } if ( window.biz ) { data.msg += ` || biz=${window.biz} mid=${window.mid} idx=${window.idx} scene=${window.source}`; } if ( data._info ) { if ( Object.prototype.toString.call ( data._info ) == " [ object Object ] " ) { data.msg += " || info:" + JSON.stringify ( data._info ) ; } else if ( Object.prototype.toString.call ( data._info ) == " [ object String ] " ) { data.msg += " || info:" + data._info; } else { data.msg += " || info:" + data._info; } } if ( typeof this._hookCallback == "function" ) { if ( this._hookCallback ( data ) === false ) { return } } this._send ( data ) ; return _.BadJs; } catch ( e ) { console.error ( e ) ; } }, winErr: function ( event ) { if ( event.error && event.error.BADJS_EXCUTED ) { return; } if ( event.type === 'unhandledrejection' ) { if ( event.reason instanceof Error ) { var e = event.reason || {}; _.BadJs.onError ( createError ( event.type, e.message || "", e.sourceURL || "", e.line || "", e.column || "", event.reason ) ) ; } else { var message = typeof event.reason === 'object' ? JSON.stringify ( event.reason ) : event.reason; _.BadJs.onError ( createError ( event.type, message, "", "", "", event.reason ) ) ; } }else{ _.BadJs.onError ( createError ( BADJS_WIN_ERR, event.message, event.filename, event.lineno, event.colno, event.error ) ) ; } }, init: function ( uin, mid, view ) { this.uin = uin || this.uin; this.mid = mid || this.mid; this.view = view || this.view; return _.BadJs; }, hook: function ( fn ) { this._hookCallback = fn; return _.BadJs; }, _send: function ( data ) { if ( !data.mid ) { if ( typeof window.PAGE_MID !== 'undefined' && window.PAGE_MID ) { data.mid = window.PAGE_MID; } else { return; } } if ( !data.uin ) { data.uin = window.user_uin || 0; } var flag = [ data.mid, data.name, data.key ] .join ( "|" ) ; if ( this._cache && this._cache [ flag ] ) { return } else { this._cache && ( this._cache [ flag ] = true ) ; this._xhr ( data ) ; } return _.BadJs; }, _xhr: function ( data ) { var xmlobj; if ( window.ActiveXObject ) { try { xmlobj = new ActiveXObject ( "Msxml2.XMLHTTP" ) ; } catch ( e ) { try { xmlobj = new ActiveXObject ( "Microsoft.XMLHTTP" ) ; } catch ( E ) { xmlobj = false; } } } else if ( window.XMLHttpRequest ) { xmlobj = new XMLHttpRequest ( ) ; } var param = ""; for ( var key in data ) { if ( key && data [ key ] ) { param += [ key, "=", encodeURIComponent ( data [ key ] ) , "&" ] .join ( "" ) ; } } if ( xmlobj && typeof xmlobj.open == "function" ) { xmlobj.open ( "POST", "https://badjs.weixinbridge.com/report", true ) ; xmlobj.setRequestHeader ( "Content-Type", "application/x-www-form-urlencoded; charset=UTF-8" ) ; xmlobj.onreadystatechange = function ( status ) {}; xmlobj.send ( param.slice ( 0, -1 ) ) ; } else { var img = new Image ( ) ; img.src = "https://badjs.weixinbridge.com/report?" + param; } }, report: function ( name, key, data ) { this.onError ( createError ( name, key ) , data ) ; return this; }, mark: function ( info ) { this._info = extend ( this._info, info ) ; }, nocache: function ( ) { this._cache = false; return _.BadJs; } } function createError ( name, msg, url, line, col, error ) { return { name: name || "", message: msg || "", file: url || "", line: line || "", col: col || "", stack: ( error && error.stack ) || "", } } function errToData ( e ) { var _stack = parseStack ( e ) ; return { name: e.name, key: e.message, msg: e.message, stack: _stack.info, file: _stack.file, line: _stack.line, col: _stack.col, client_version: "", _info: e._info } } function parseStack ( e ) { e._info = e._info || ""; var stack = e.stack || ""; var _stack = { info: stack, file: e.file || "", line: e.line || "", col: e.col || "", }; if ( _stack.file == "" ) { var stackArr = stack.split ( /batb/ ) ; if ( stackArr && stackArr [ 1 ] ) { var match = / ( https?:// [ ^n ] + ) : ( d+ ) : ( d+ ) /.exec ( stackArr [ 1 ] ) ; if ( match ) { if ( match [ 1 ] && match [ 1 ] != _stack.file ) { _stack.file && ( e._info += " [ file: " + _stack.file + " ] " ) ; _stack.file = match [ 1 ] ; } if ( match [ 2 ] && match [ 2 ] != _stack.line ) { _stack.line && ( e._info += " [ line: " + _stack.line + " ] " ) ; _stack.line = match [ 2 ] ; } if ( match [ 3 ] && match [ 3 ] != _stack.col ) { _stack.col && ( e._info += " [ col: " + _stack.col + " ] " ) ; _stack.col = match [ 3 ] ; } } } } if ( _stack && _stack.file && _stack.file.length > 0 ) { _stack.info = _stack.info.replace ( new RegExp ( _stack.file.split ( "?" ) [ 0 ] , "gi" ) , "__FILE__" ) } if ( _.BadJs.ignorePath ) { _stack.info = _stack.info.replace ( /http ( s ) ?: [ ^:n ] *//ig, "" ) .replace ( /n/gi, "" ) ; } return _stack; } window.addEventListener && window.addEventListener ( 'error', _.BadJs.winErr ) ; window.addEventListener && window.addEventListener ( 'unhandledrejection', _.BadJs.winErr ) ; return _.BadJs; } ) ( WX_BJ_REPORT ) ; window.WX_BJ_REPORT = WX_BJ_REPORT; function __moonf__ ( ) { if ( window.__moonhasinit ) return; window.__moonhasinit = true; window.__moonclientlog = [ ] ; if ( typeof JSON != "object" ) { window.JSON = { stringify: function ( ) { return ""; }, parse: function ( ) { return {}; } }; } var moon_init = function ( ) { ( function ( ) { var inWx = ( /MicroMessenger/i ) .test ( navigator.userAgent ) ; var inMp = ( /MPAPP/i ) .test ( navigator.userAgent ) ; var _idkey = 121261; var _startKey; var _limit; var _badjsId; var _reportOpt; var _extInfo; var MOON_AJAX_NETWORK_OFFSET = 4; window.__initCatch = function ( opt ) { _idkey = opt.idkey; _startKey = opt.startKey || 0; _limit = opt.limit; _badjsId = opt.badjsId; _reportOpt = opt.reportOpt || ""; _extInfo = opt.extInfo || {}; _extInfo.rate = _extInfo.rate || 0.5; } window.__moon_report = function ( array, rate_opt ) { var isAcrossOrigin = false; var href = ''; try { href = top.location.href; } catch ( e ) { isAcrossOrigin = true; } var rate = 0.5; if ( !!_extInfo && !!_extInfo.rate ) { rate = _extInfo.rate; } if ( !!rate_opt && ( typeof rate_opt == 'number' ) ) { rate = rate_opt; } if ( ( ! ( /mp.weixin.qq.com/ ) .test ( location.href ) && ! ( /payapp.weixin.qq.com/ ) .test ( location.href ) ) || Math.random ( ) > rate || ! ( inWx || inMp ) || ( top != window && !isAcrossOrigin && ! ( /mp.weixin.qq.com/ ) .test ( href ) ) ) { } if ( isObject ( array ) ) array = [ array ] ; if ( !isArray ( array ) || _idkey == '' ) return; var data = ""; var log = [ ] ; var key = [ ] ; var val = [ ] ; var idkey = [ ] ; if ( typeof _limit != "number" ) { _limit = Infinity; } for ( var i = 0; i < array.length; i++ ) { var item = array [ i ] || {}; if ( item.offset > _limit ) continue; if ( typeof item.offset != "number" ) continue; if ( item.offset == MOON_AJAX_NETWORK_OFFSET && !!_extInfo && !!_extInfo.network_rate && Math.random ( ) >= _extInfo.network_rate ) { continue; } var k = _limit == Infinity ? _startKey : ( _startKey + item.offset ) ; log [ i ] = ( ( " [ moon ] " + _idkey + "_" + k + ";" ) + item.log + ";" + getErrorMessage ( item.e || {} ) ) || ""; key [ i ] = k; val [ i ] = 1; } for ( var j = 0; j < key.length; j++ ) { idkey [ j ] = _idkey + "_" + key [ j ] + "_" + val [ j ] ; data = data + "&log" + j + "=" + log [ j ] ; } if ( idkey.length > 0 ) { sendReport ( "POST", location.protocol + '//mp.weixin.qq.com/mp/jsmonitor?', "idkey=" + idkey.join ( ";" ) + "&r=" + Math.random ( ) + "&lc=" + log.length + data ) ; var rate = 1; if ( _extInfo && _extInfo.badjs_rate ) { rate = _extInfo.badjs_rate; } if ( Math.random ( ) < rate ) { data = data.replace ( /uin: ( . ) *|biz: ( . ) *|mid: ( . ) *|idx: ( . ) *|sn: ( . ) *|/, '' ) ; if ( !!_badjsId ) { var _img = new Image ( ) ; var _src = 'https://badjs.weixinbridge.com/badjs?id=' + _badjsId + '&level=4&from=' + encodeURIComponent ( location.host ) + '&msg=' + encodeURIComponent ( data ) ; _img.src = _src.slice ( 0, 1024 ) ; } if ( typeof WX_BJ_REPORT != "undefined" && WX_BJ_REPORT.BadJs ) { for ( var i = 0; i < array.length; i++ ) { var item = array [ i ] || {}; if ( item.e ) { WX_BJ_REPORT.BadJs.onError ( item.e,{_info:item.log} ) ; } else { var name = / [ ^:; ] */.exec ( item.log ) [ 0 ] ; WX_BJ_REPORT.BadJs.report ( name, item.log, { mid: "mmbizwap:Monitor" } ) ; } } } } else { for ( var i = 0; i < array.length; i++ ) { var item = array [ i ] || {}; if ( item.e ) { item.e.BADJS_EXCUTED = true; } } } } } function isArray ( obj ) { return Object.prototype.toString.call ( obj ) === ' [ object Array ] '; } function isObject ( obj ) { return Object.prototype.toString.call ( obj ) === ' [ object Object ] ';
hawk26講武堂
昨天