window.console = window.console || (function () {})(); if(typeof(_yfx_version) === "undefined" && window.navigator.cookieenabled){ var _yfx_version = '20230318';//易分析sdk版本 var _yfx_counttype; var _yfx_server; var _yfx_website; var _yfx_openmeta; var _yfx_nodeid; var _yfx_contentid; var _yfx_title; var _yfx_editor; var _yfx_author; var _yfx_pubtime; var _yfx_imgurl; var _yfx_nodeid_set; var _yfx_contentid_set; var _yfx_title_set; var _yfx_editor_set; var _yfx_author_set; var _yfx_pubtime_set; var _yfx_imgurl_set; var _yfx_cookie = _yfx_cookie || ""; var _yfx_userid = _yfx_userid || ""; var _yfx_username = _yfx_username || ""; var _yfx_isiframe = _yfx_isiframe || false;//代码是否部署在iframe页面内 var _yfx_isopendebug = _yfx_isopendebug || false;//是否开启调试 var _yfx_isopencross = false;//是否开启跨域cookie var _yfx_tracktype = "common";//common:正常采集|htmlimg:截图|clickhot热点图 var _yfx_domtimeout = _yfx_domtimeout || 5; //dom录屏发送时间间隔,单位秒 var _yfx_domrandom = _yfx_domrandom || 0;//dom采集概率,如=10,就是10% var _yfx_netrandom = _yfx_netrandom || 0;//体验采集概率,如=10,就是10% var _yfx_clickstepnum = 0; var _yfx_clicksubstepnum = 0; var _yfx_imgdomhtmlfunc; var _yfx_trackdata = _yfx_trackdata || [];//事件数据 var _yfx_sendserverurl = _yfx_sendserverurl || [];//发送到其他平台 var _yfx_logid = 1; var _yfx_server_cookie; var _yfx_server_session; var _yfx_out_func_dom; var _yfx_out_func_net; var _yfx_out_func_img; var _yfx_domdatatype = "start"; var _yfx_timingdatatype = "onload"; var _yfx_show_recommend_click = []; var _yfx_show_recommend_json = []; var _yfx_timeout_count = 0; var _yfx_fromclickhot = false; var _yfx_download_ext = _yfx_download_ext || ".doc|.xls|.pdf|.ppt|.rar|.zip|.csv"; _yfx_server = _yfx_test_null(_yfx_server, "s1"); _yfx_website = _yfx_test_null(_yfx_website, "10000001"); var _yfx_precookie = _yfx_website; var _yfx_window = window; if (_yfx_isiframe === true) { _yfx_window = top.window; } var _yfx_docuhash = _yfx_window.document.location.hash; if ( _yfx_docuhash.indexof('yeefx_html2img') >= 0 ) { _yfx_tracktype = 'html2img'; } else if ( _yfx_docuhash.indexof('yeefx_clickhot=') >= 0 ) { _yfx_tracktype = 'openclickhot'; } else if ( _yfx_docuhash.indexof('yeefx_clickhot') >= 0 ) { _yfx_tracktype = 'clickhot'; } else if ( _yfx_docuhash.indexof('yeefx_clickarea=') >= 0 ) { _yfx_tracktype = 'openclickarea'; } else if ( _yfx_docuhash.indexof('yeefx_clickarea') >= 0 ) { _yfx_tracktype = 'clickarea'; } function _yfx_replace_hash(str){ str = str || ""; if(str.indexof("#yeefx_html2img") >= 0){ str = str.substring(0, str.indexof("#yeefx_html2img")); } else if(str.indexof("#yeefx_clickhot") >= 0){ str = str.substring(0, str.indexof("#yeefx_clickhot")); } else if(str.indexof("#yeefx_clickarea") >= 0){ str = str.substring(0, str.indexof("#yeefx_clickarea")); } return str; }; function _yfx_get_jspath(jspath){ var _jspath = ""; jspath = jspath || ""; if(jspath === ""){ var _domjs = window.document.scripts; for(var i = _domjs.length; i > 0; i--){ if(_domjs[i-1].src.indexof("yeefxcount.js") >=0 || _domjs[i-1].src.indexof("yeefxcount_test.js") >=0){ _jspath = _domjs[i-1].src.substring(0, _domjs[i-1].src.lastindexof("/")); _jspath = _yfx_replace_str(_jspath, "http://|https://|//", "//"); break; } } } else{ _jspath = jspath; } return _jspath; }; function _yfx_encode(s){ return (typeof(encodeuricomponent)==="function")?encodeuricomponent(s):escape(s); }; function _yfx_id(id) { return _yfx_window.document.getelementbyid(id) || ""; }; function _yfx_replace_str(str, rs, dv){ str = str || ""; var rs_array = rs.split("|"); if(rs_array.length > 0) { for(var i = 0; i < rs_array.length; i++) { if(str.indexof(rs_array[i]) >= 0) { str = str.replace(rs_array[i], dv); } } } return str; }; function _yfx_ajax_object(){ var xmlhttp=null; if (_yfx_window.xdomainrequest) { xmlhttp = new _yfx_window.xdomainrequest(); } else if (_yfx_window.xmlhttprequest) { xmlhttp=new _yfx_window.xmlhttprequest(); } else{ try{ xmlhttp=new activexobject("msxml2.xmlhttp"); } catch(e){ xmlhttp=new activexobject("microsoft.xmlhttp"); } } try{ xmlhttp.timeout = 30000;//30秒发送失败超时 } catch(e){ } return xmlhttp; }; var _yfx_onerror_array = []; function _yfx_try_catch_error(ev) { if(ev){ _yfx_onerror_array.push(ev); }; }; function _yfx_addlistener(a, b, c) { if (a.addeventlistener) { a.addeventlistener(b, c, true) } else { if (a.attachevent) { a.attachevent('on' + b, c) } } }; _yfx_addlistener(_yfx_window, 'error', _yfx_try_catch_error);//监听错误 var _yfx_useragent = navigator.useragent.tolowercase(); if(_yfx_useragent.indexof("msie") > 0){//ie浏览器 _yfx_domrandom = 0; }; var _yfx_spider_preg = /(spider|bot|http:|https:)/.exec(_yfx_useragent); var _yfx_spider = _yfx_spider_preg === null ? "visitor" : _yfx_spider_preg[0]; var _yfx_counturl = _yfx_get_jspath();//logcount.html路径地址,默认自动获取,也可以自定义参数,如//xx.xx.xx.xx/clicklogs function _yfx_test_null(tp,dv){ var rp = tp; dv = typeof(dv) === 'undefined' ? "" : dv; if( typeof(tp) === 'null' ){rp = dv;} else if( typeof(tp) === 'undefined' ){rp = dv;} else if( typeof(tp) === 'object' ){rp = dv;} else if( typeof(tp) === 'function' ){rp = dv;} return rp; }; function _yfx_timeout(t){ var nowtime = new date(); while (new date() - nowtime < t) { } }; function _yfx_start_track(){ function _yfx_padleft(str, strlength, padstr) { str = str + ''; for(var i = str.length; i < strlength; i++){ str = padstr + '' + str; } return str; }; function _yfx_datefomate(value) { var date = new date(value); var y = date.getfullyear(); var m = date.getmonth()+1; var d = date.getdate(); return y+'-'+m+'-'+d; }; function _yfx_redcookie(name) { var cv = ""; var _yfx_0f = name + "="; if (_yfx_window.document.cookie.length > 0) { _yfx_0g = _yfx_window.document.cookie.indexof(_yfx_0f); if (_yfx_0g != -1) { _yfx_0g += _yfx_0f.length; end = _yfx_window.document.cookie.indexof(";", _yfx_0g); if (end === -1) end = _yfx_window.document.cookie.length; cv = unescape(_yfx_window.document.cookie.substring(_yfx_0g, end)); } }; return cv || ""; }; function _yfx_setcookie(name, value, hour) { var _yfx_expires = ""; if (hour != null) { _yfx_expires = new date(new date().gettime() + hour); _yfx_expires = "; expires=" + _yfx_expires.togmtstring(); }; _yfx_window.document.cookie = name + "=" + _yfx_encode(value) + _yfx_expires + ";domain="+_yfx_get_domain()+";" + "path=/;samesite=lax;"; }; function _yfx_localstorage(keytype, keyid, keyvalue){ var rkeyvalue = ""; if(window.localstorage){ if(keytype === "set"){ rkeyvalue = keyvalue; localstorage.setitem(keyid+'_'+_yfx_precookie, keyvalue); } else if(keytype === "get"){ rkeyvalue = localstorage.getitem(keyid+'_'+_yfx_precookie); } } else{ if(keytype === "set"){ rkeyvalue = keyvalue; _yfx_setcookie(keyid+'_'+_yfx_precookie, keyvalue, 24 * 3600000); } else if(keytype === "get"){ rkeyvalue = _yfx_redcookie(keyid+'_'+_yfx_precookie); } } return rkeyvalue || ""; }; var _yfx_microtimes = new date().gettime(); var _yfx_pagenumberid = _yfx_microtimes+""+_yfx_random(100,999); var _yfx_clickurl = _yfx_counturl + '/logcount.html'; var _yfx_docuhref = _yfx_window.document.location.href; var _yfx_docureferfer = _yfx_window.document.referrer; if(_yfx_openmeta === true){ _yfx_nodeid = _yfx_test_null(_yfx_window.document.getelementsbytagname('meta')[_yfx_nodeid_set].content); _yfx_contentid = _yfx_test_null(_yfx_window.document.getelementsbytagname('meta')[_yfx_contentid_set].content); _yfx_title = _yfx_test_null(_yfx_window.document.getelementsbytagname('meta')[_yfx_title_set].content); _yfx_editor = _yfx_test_null(_yfx_window.document.getelementsbytagname('meta')[_yfx_editor_set].content); _yfx_pubtime = _yfx_test_null(_yfx_window.document.getelementsbytagname('meta')[_yfx_pubtime_set].content); _yfx_imgurl = _yfx_test_null(_yfx_window.document.getelementsbytagname('meta')[_yfx_imgurl_set].content); }; var _yfx_docutitle = (_yfx_test_null(_yfx_title) === "" ? _yfx_window.document.title: _yfx_title).replace(/<[^>].*?>/g, ''); function _yfx_get_device_ratio(){ var device_ratio = _yfx_window.devicepixelratio; var meta_viewport = _yfx_window.document.getelementsbytagname('meta')["viewport"]; if(meta_viewport){ var _yfx_viewport = _yfx_test_null(meta_viewport.content); if(_yfx_viewport.indexof("initial-scale") > 0){ var _yfx_viewport_arr = _yfx_viewport.split(","); for(var key in _yfx_viewport_arr){ if(_yfx_viewport_arr[key].indexof("initial-scale") >= 0){ device_ratio = number(_yfx_viewport_arr[key].trim().substring(14)); break; } } } } return device_ratio || 1; }; var _yfx_device_ratio = _yfx_get_device_ratio(); var _yfx_language = (navigator.systemlanguage ? navigator.systemlanguage: navigator.language); var _yfx_color = _yfx_window.screen.colordepth; var _yfx_screensize = _yfx_window.screen.width + '*' + _yfx_window.screen.height; var _yfx_charset = _yfx_window.document.charset === null ? 'zh_cn': _yfx_window.document.charset; var _yfx_iscookie = navigator.cookieenabled ? 1 : 0; var _yfx_search_type = new array(); var _yfx_search_keyword = new array(); _yfx_search_type[0]='baidu'; _yfx_search_keyword[0]='wd'; _yfx_search_type[1]='baidu'; _yfx_search_keyword[1]='word'; _yfx_search_type[2]='google'; _yfx_search_keyword[2]='q'; _yfx_search_type[3]='so'; _yfx_search_keyword[3]='q'; _yfx_search_type[4]='sogou'; _yfx_search_keyword[4]='query'; _yfx_search_type[5]='bing'; _yfx_search_keyword[5]='q'; _yfx_search_type[6]='youdao'; _yfx_search_keyword[6]='q'; _yfx_search_type[7]='soso'; _yfx_search_keyword[7]='w'; _yfx_search_type[8]='sm'; _yfx_search_keyword[8]='q'; var _yfx_firsttime = ""; var _yfx_lasttime = ""; var _yfx_visittime = ""; var _yfx_return = ""; var _yfx_isfirst = 0; var _yfx_isvisit = 0; _yfx_firsttime = _yfx_redcookie('_yfx_firsttime_'+_yfx_precookie); if (_yfx_firsttime === "") { _yfx_isfirst = 1; _yfx_isvisit = 1; _yfx_firsttime = _yfx_microtimes; _yfx_lasttime = _yfx_microtimes; _yfx_visittime = _yfx_microtimes; _yfx_setcookie('_yfx_firsttime_'+_yfx_precookie, _yfx_firsttime, 3 * 365 * 24 * 3600000); _yfx_setcookie('_yfx_lasttime_'+_yfx_precookie, _yfx_firsttime, 3 * 365 * 24 * 3600000); _yfx_setcookie('_yfx_visitcount_'+_yfx_precookie, _yfx_firsttime, 3 * 365 * 24 * 3600000); } else { _yfx_lasttime = _yfx_redcookie('_yfx_lasttime_'+_yfx_precookie); _yfx_visittime = _yfx_redcookie('_yfx_visitcount_'+_yfx_precookie); }; _yfx_return = _yfx_redcookie('_yfx_returncount_'+_yfx_precookie); _yfx_return = _yfx_return === "" ? 0 : _yfx_return; var _yfx_cookie_cookie = _yfx_redcookie('_yfx_cookie_'+_yfx_precookie); _yfx_cookie = _yfx_test_null(_yfx_cookie || _yfx_cookie_cookie); if (_yfx_cookie === "") { _yfx_cookie = _yfx_server_cookie || _yfx_getuuid(); _yfx_setcookie('_yfx_cookie_'+_yfx_precookie, _yfx_cookie, 3 * 365 * 24 * 3600000); } else if (_yfx_cookie_cookie === "") { _yfx_setcookie('_yfx_cookie_'+_yfx_precookie, _yfx_cookie, 3 * 365 * 24 * 3600000); }; if(typeof(_yfx_server_cookie) !== "undefined" && _yfx_cookie !== _yfx_server_cookie && _yfx_server_cookie){ _yfx_cookie = _yfx_server_cookie; _yfx_setcookie('_yfx_cookie_'+_yfx_precookie, _yfx_cookie, 3 * 365 * 24 * 3600000); }; if (_yfx_iscookie === "0") { _yfx_cookie = 'yfx_no_cookie_0000'; }; _yfx_userid = _yfx_test_null(_yfx_userid); var _yfx_userid_cookie = _yfx_redcookie('_yfx_userid_'+_yfx_precookie); if (_yfx_userid !== "" && _yfx_userid_cookie === "") { _yfx_setcookie('_yfx_userid_'+_yfx_precookie, _yfx_userid, 3 * 365 * 24 * 3600000); }; _yfx_userid = _yfx_userid || _yfx_userid_cookie; _yfx_username = _yfx_test_null(_yfx_username); var _yfx_username_cookie = _yfx_redcookie('_yfx_username_'+_yfx_precookie); if (_yfx_username !== "" && _yfx_username_cookie === "") { _yfx_setcookie('_yfx_username_'+_yfx_precookie, _yfx_username, 3 * 365 * 24 * 3600000); }; _yfx_username = _yfx_username || _yfx_username_cookie; if (_yfx_microtimes - _yfx_visittime >= 1800000) { _yfx_isfirst = 1; _yfx_visittime = _yfx_microtimes; _yfx_setcookie('_yfx_visitcount_'+_yfx_precookie, _yfx_microtimes, 3 * 365 * 24 * 3600000); }; if (_yfx_datefomate(_yfx_microtimes) !== _yfx_datefomate(parsefloat(_yfx_lasttime)) && _yfx_lasttime > 0) { _yfx_setcookie('_yfx_returncount_'+_yfx_precookie, ++_yfx_return, 3 * 365 * 24 * 3600000); _yfx_setcookie('_yfx_lasttime_'+_yfx_precookie, _yfx_microtimes, 3 * 365 * 24 * 3600000); } else { _yfx_return = _yfx_return; }; _yfx_log("易分析sdk版本 = "+_yfx_version); _yfx_log("站点id = "+_yfx_website+", cookie = "+_yfx_cookie+", pageid = "+_yfx_pagenumberid); var _yfx_browser_preg = /(firefox|qqbrowser|360se|sogou|metasr:sogou|lbbrowser|bidubrowser|tencenttraveler|theworld|maxthon|avantbrowser|edge|opera|opr:opera|ucweb|konqueror|lynx|greenbrowser|netcaptor|netscape|micromessenger|mqqbrowser|safari|trident|wxwork|dingtalk|baiduboxapp|ucbrowser|huaweibrowser|sogoumobilebrowser|fxios|opios|mb2345browser|crios|flock|shiira|chimera|phoenix|firebird|camino|omniweb|icab|links|amaya|ibrowse|curl|wget|python-requests|edg|chrome)/.exec(_yfx_useragent); if (!_yfx_browser_preg) _yfx_browser_preg = /(msie) ([0-9\.]*)[^;)]/.exec(_yfx_useragent); var _yfx_browser = _yfx_browser_preg === null ? 'other': _yfx_browser_preg[0]; var _yfx_system_preg = /(windows nt|windows|unix|linux|sunos|bsd|redhat|macintosh|centos|mac os|harmonyos|android|iphone os) ([0-9a-z_\.]{0,3})[^;)]/.exec(_yfx_useragent); var _yfx_system = _yfx_system_preg === null ? 'other': _yfx_system_preg[0]; var _yfx_length = _yfx_system.length; if(_yfx_system.substring(_yfx_length - 1, _yfx_length) == "." || _yfx_system.substring(_yfx_length - 1, _yfx_length) == "_"){ _yfx_system = _yfx_system.substring(0, _yfx_length - 1); } var _yfx_phone_preg = /(huawei|xiaomi|nokia|nexus|moto|samsung|vivo|oppo|letv|htc|philips|redmi|zte|meizu|panasonic|alcatel|lenovo|iphone|ipod|ipad|blackberry|netfront|symbian|windowsce|palm|operamini|openwave|nexusone|playstation|nintendo|symbianos|dangerhiptop|dopod|harmonyos|android|iphone)/.exec(_yfx_useragent); var _yfx_phone = _yfx_phone_preg === null ? '': _yfx_phone_preg[0]+'!'+_yfx_phone_preg[0]; var _yfx_systemtype = _yfx_phone === "" ? 'pc': 'phone'; var _yfx_wxclient = "0"; if(_yfx_useragent.indexof("micromessenger") > 0){ _yfx_wxclient = "1"; } var _yfx_pagehost = _yfx_getpagehost(_yfx_docuhref, 'host'); var _yfx_pageurl = _yfx_getpagehost(_yfx_docuhref, 'page'); var _yfx_pageall = _yfx_getpagehost(_yfx_docuhref, 'page'); var _yfx_refhost = _yfx_getpagehost(_yfx_docureferfer, 'host'); var _yfx_refpage = _yfx_getpagehost(_yfx_docureferfer, 'page'); _yfx_pageurl = _yfx_replace_hash(_yfx_pageurl); _yfx_refpage = _yfx_replace_hash(_yfx_refpage); function _yfx_get_data_type(type){ var datatype = new array(); datatype["click"] = "点击数据"; datatype['common'] = "浏览数据"; datatype['dom'] = "录屏数据"; datatype['img'] = "截图数据"; datatype['net'] = "性能数据"; datatype['simnet'] = "性能数据"; datatype['record'] = "事件数据"; datatype['error'] = "日志数据"; datatype['show'] = "曝光数据"; return (datatype[type] || "未知数据"); }; function _yfx_sendserverurl_ajax(type, subtype, data){//给其他平台发数据 var sendserverurl = window._yfx_sendserverurl; if( sendserverurl && sendserverurl.length > 0 ) { for(var k in sendserverurl) { var _yfx_sendclickurl = _yfx_test_null(sendserverurl[k][0]); var _yfx_sendclicksite = _yfx_test_null(sendserverurl[k][1]); var _yfx_send_data = _yfx_replace_str(data, "aws="+_yfx_website, "aws="+_yfx_sendclicksite); var _yfx_starttime = new date().gettime(); try { var ajax = _yfx_ajax_object(); ajax.open("post", _yfx_sendclickurl+"?website="+_yfx_sendclicksite+"&server="+_yfx_server+"&datatype="+type+"_"+subtype+"&sendid="+_yfx_starttime, true );//ajax发送浏览数据 ajax.setrequestheader('content-type','application/x-www-form-urlencoded'); ajax.send(_yfx_send_data+"&asendid="+_yfx_starttime+"&aresend=0"); ajax.onreadystatechange=function(){ if (ajax.readystate === 4 && ajax.status === 200){ _yfx_log("同步 "+(_yfx_get_data_type(type))+" 耗时 = "+(new date().gettime() - _yfx_starttime)); } else if (ajax.readystate === 4 && ajax.status != 200 ){ _yfx_resend_sendserverurl_ajax(_yfx_sendclickurl, _yfx_sendclicksite, type, subtype, data); } }; } catch(e){ _yfx_track_error("同步发送请求异常", e); } } } }; function _yfx_resend_sendserverurl_ajax(url, website, type, subtype, data){ var ajax_re = _yfx_ajax_object(); var _yfx_starttime = new date().gettime(); try { ajax_re.open("post", url+"?website="+website+"&server="+_yfx_server+"&datatype="+type+"_"+subtype+"&sendid="+_yfx_starttime+"&resend=1", true );//ajax重发数据 ajax_re.setrequestheader('content-type','application/x-www-form-urlencoded'); ajax_re.send(data+"&asendid="+_yfx_starttime+"&aresend=1"); _yfx_log("重发 "+(_yfx_get_data_type(type))+" 耗时 = "+(new date().gettime() - _yfx_starttime)); } catch(e){ _yfx_track_error("同步重发请求异常", e); } }; function _yfx_send_ajax_data(type, subtype, data){ var ajax = _yfx_ajax_object(); var _yfx_starttime = new date().gettime(); try { var publicdata = "&act=" + _yfx_test_null(_yfx_counttype, "web") + "&atp=" + _yfx_test_null(_yfx_systemtype, "pc") + "&aver=" + _yfx_version + "&asdkver=" + _yfx_version + "&auc=" + _yfx_cookie + "&avuc=" + _yfx_visittime + "&auid=" + _yfx_encode(_yfx_test_null(_yfx_userid)) + "&aun=" + _yfx_encode(_yfx_test_null(_yfx_username)) + "&alg=" + _yfx_language + "&acl=" + _yfx_color + "&ass=" + _yfx_screensize + "&asssh=" + _yfx_scroll_height() + "&afst=" + _yfx_firsttime + "&alst=" + _yfx_lasttime + "&arc=" + _yfx_return + "&acs=" + _yfx_charset + "&asy=" + _yfx_encode(_yfx_system) + "&asyt=" + _yfx_encode(_yfx_systemtype, "pc") + "&abot=" + _yfx_spider + "&abr=" + _yfx_encode(_yfx_browser) + "&awxbr=" + _yfx_wxclient + "&atz=" + (new date().gettimezoneoffset() / 60) + "&amd=" + _yfx_phone + "&alogt="; data = data.replace("&sendcommondata=", publicdata); ajax.open("post", _yfx_clickurl+"?website="+_yfx_website+"&server="+_yfx_server+"&datatype="+type+"_"+subtype+"&sendid="+_yfx_starttime, true );//ajax发送浏览数据 ajax.setrequestheader('content-type','application/x-www-form-urlencoded'); ajax.send(data+"&asendid="+_yfx_starttime+"&aresend=0"); ajax.onreadystatechange=function(){ if (ajax.readystate === 4 && ajax.status === 200){ _yfx_log("发送 "+(_yfx_get_data_type(type))+" 耗时 = "+(new date().gettime() - _yfx_starttime)); if(type === "img"){ _yfx_id('yfx_debug_id').innerhtml = "截图成功, 请关闭此页, 上传耗时:"+(new date().gettime() - _yfx_starttime)+"ms"; } } else if (ajax.readystate === 4 && ajax.status != 200 ){ _yfx_resend_ajax_data(type, subtype, data); } }; if(_yfx_sendserverurl.length > 0){ _yfx_sendserverurl_ajax(type, subtype, data); } } catch(e){ _yfx_track_error("发送请求异常", e); } }; function _yfx_resend_ajax_data(type, subtype, data){ var ajax_re = _yfx_ajax_object(); var _yfx_starttime = new date().gettime(); try { ajax_re.open("post", _yfx_clickurl+"?website="+_yfx_website+"&server="+_yfx_server+"&datatype="+type+"_"+subtype+"&sendid="+_yfx_starttime+"&resend=1", true );//ajax重发数据 ajax_re.setrequestheader('content-type','application/x-www-form-urlencoded'); ajax_re.send(data+"&asendid="+_yfx_starttime+"&aresend=1"); _yfx_log("重发 "+(_yfx_get_data_type(type))+" 耗时 = "+(new date().gettime() - _yfx_starttime)); } catch(e){ _yfx_track_error("重发请求异常", e); } }; function _yfx_track_error(url, err){ _yfx_send_ajax_data("error", "error", "website="+_yfx_website+"&server="+_yfx_server+"&yeefxjserror="+_yfx_encode(url)+"&yeefxjserrormsg="+_yfx_encode(err.message)); }; function _yfx_send_common() {//浏览数据 var ardttype = _yfx_isfirst == 1 ? "start" : "page"; var _yfx_logdata = "aws=" + _yfx_website + "&aser=" + _yfx_server + "&ard=common&ardt=" + ardttype + "&sendcommondata=&aau=" + _yfx_encode(_yfx_test_null(_yfx_author)) + "&andid=" + _yfx_test_null(_yfx_nodeid) + "&actid=" + _yfx_test_null(_yfx_contentid) + "&aedt=" + _yfx_encode(_yfx_test_null(_yfx_editor)) + "&aimgurl=" + _yfx_encode(_yfx_test_null(_yfx_get_body_img())) + "&apt=" + _yfx_test_null(_yfx_pubtime) + "&aps=" + _yfx_pagehost + "&apu=" + _yfx_encode(_yfx_pageurl) + "&ars=" + _yfx_refhost + "&arf=" + _yfx_encode(_yfx_refpage) + _yfx_getkeyword(_yfx_docureferfer) + _yfx_pmfkey(_yfx_pageurl) + "&amid=" + _yfx_pagenumberid + "&aevtmid=&att=" + _yfx_encode(_yfx_docutitle) + "&arandom=" + math.random(); _yfx_send_ajax_data("common", "common", _yfx_logdata); }; function _yfx_send_common_pageview(pageview_host, pageview_page, pageview_title, pageview_type) {//自定义浏览数据pageview_type=page//下载文件pageview_type=down var _yfx_logdata = "aws=" + _yfx_website + "&aser=" + _yfx_server + "&ard=common&ardt=" + pageview_type + "&sendcommondata=&aau=" + _yfx_encode(_yfx_test_null(_yfx_author)) + "&andid=" + _yfx_test_null(_yfx_nodeid) + "&actid=" + _yfx_test_null(_yfx_contentid) + "&aedt=" + _yfx_encode(_yfx_test_null(_yfx_editor)) + "&aimgurl=" + _yfx_encode(_yfx_test_null(_yfx_get_body_img())) + "&apt=" + _yfx_test_null(_yfx_pubtime) + "&aps=" + pageview_host + "&apu=" + _yfx_encode(pageview_page) + "&ars=" + _yfx_pagehost + "&arf=" + _yfx_encode(_yfx_pageurl) + "&amid=" + (new date().gettime()+_yfx_random(100,999)) + "&aevtmid=&att=" + _yfx_encode(pageview_title) + "&arandom=" + math.random(); _yfx_send_ajax_data("common", pageview_type, _yfx_logdata); }; function _yfx_send_loadtimes(){//首屏耗时 if (!_yfx_window.performance) { return; } try { var _yfx_timer = setinterval(function() { _yfx_set_duration(); }, 500); function _yfx_set_duration(){ var pagetime = performance.timing; if(pagetime.loadeventend > 0){ var firstpage = (pagetime.domcomplete - pagetime.navigationstart) || 0; firstpage = firstpage <= 0 ? 0 : firstpage; var _yfx_logdata = "aws=" + _yfx_website + "&aser=" + _yfx_server + "&ard=simnet&ardt=simnet&sendcommondata=&aps=" + _yfx_pagehost + "&apu=" + _yfx_encode(_yfx_pageurl) + "&amid=" + _yfx_pagenumberid + "&aevtmid=&aloadt=" + firstpage + "&arandom=" + math.random(); _yfx_send_ajax_data("simnet", "simnet", _yfx_logdata); clearinterval(_yfx_timer); } } } catch(e){ _yfx_track_error("首屏耗时异常", e); } }; function _yfx_random(minnum, maxnum) { switch (arguments.length) { case 1: return parseint(math.random() * minnum + 1, 10); break; case 2: return parseint(math.random() * ( maxnum - minnum + 1 ) + minnum, 10); break; default: return 0; break; } }; function _yfx_str_pad(strpad, len){ strpad = strpad + ''; for(var i = strpad.length; i < len; i++){ strpad = "0"+''+strpad; } return strpad; }; function _yfx_getuuid() { var _t = new date(); var _y = _t.getyear() < 1900 ? _t.getyear() + 1900 : _t.getyear(); var _m = _yfx_str_pad(_t.getmonth()+1, 2); var _d = _yfx_str_pad(_t.getdate(), 2); var _h = _yfx_str_pad(_t.gethours(), 2); var _i = _yfx_str_pad(_t.getminutes(), 2); var _s = _yfx_str_pad(_t.getseconds(), 2); var _ms = _yfx_str_pad(_t.getmilliseconds(), 3); return _y + '' + _m + '' + _d + '' + _h + '' + _i + '' + _s + '' + _ms + '' + _yfx_random(10000,99999) + '' + _yfx_random(10000,99999) + '' + _yfx_random(10000,99999); }; function _yfx_getpagehost(_yfx_inpageurl, _yfx_intype) { var i = 0, j = 0, page = ""; if ((i = _yfx_inpageurl.indexof("://")) < 0) return ""; page = _yfx_inpageurl.substring(i+3); if ((i = page.indexof("/")) > -1) { if (_yfx_intype === "page") { page = page.substring(i); } else { page = page.substring(0, i); } }; return page; }; function _yfx_getkeyword(_yfx_inkeyword) { var i, j, h, k, rk, e, ek, f, p = 10; var _yfx_inkey = "", _yfx_keywordstr = ""; _yfx_inkeyword = _yfx_inkeyword.tolowercase(); h = _yfx_getpagehost(_yfx_inkeyword); for (var ii = 0; ii < _yfx_search_type.length; ii++) { if (h.tolowercase().indexof(_yfx_search_type[ii].tolowercase()) > -1) { _yfx_keywordstr = '&akw=&awp=' + _yfx_search_type[ii]; if ((i = _yfx_inkeyword.indexof("?" + _yfx_search_keyword[ii] + "=")) > -1 || (i = _yfx_inkeyword.indexof("&" + _yfx_search_keyword[ii] + "=")) > -1) { k = _yfx_inkeyword.substring(i + _yfx_search_keyword[ii].length + 2, _yfx_inkeyword.length); _yfx_inkey = "&akw=" + _yfx_encode(k) + "&awp=" + _yfx_search_type[ii]; if ((i = k.indexof("&")) > -1) { k = k.substring(0, i); _yfx_inkey = "&akw=" + _yfx_encode(k) + "&awp=" + _yfx_search_type[ii]; } } } }; _yfx_inkey = _yfx_inkey ? _yfx_inkey : _yfx_keywordstr; if (_yfx_test_null(_yfx_inkey) === "") return "&akw=&awp="; else if (rk) return _yfx_inkey + rk; else return _yfx_inkey; }; function _yfx_parseurl(_yfx_url) { var ix = 0; var arr = new array(); _yfx_url = _yfx_url + '&phpstat=yfx'; if(_yfx_url.indexof("?") >= 0){ _yfx_url = _yfx_url.substring(_yfx_url.indexof("?")); } if(_yfx_url.indexof("#") >= 0){ _yfx_url = _yfx_url.substring(0, _yfx_url.indexof("#")); } var c = _yfx_url.replace(/^\?/,'').split('&'); for (var b = 0; b < c.length; b++) { var e = c[b].split('='); arr[e[0]] = e[1]; } return arr; } function _yfx_pmfkey(_yfx_pmfurl) { var _yfx_parseurlarr = _yfx_parseurl(_yfx_pmfurl); var _yfx_pmf_group = _yfx_test_null(_yfx_parseurlarr['pmf_group'] || _yfx_parseurlarr['utm_source']); var _yfx_pmf_medium = _yfx_test_null(_yfx_parseurlarr['pmf_medium'] || _yfx_parseurlarr['utm_medium']); var _yfx_pmf_plan = _yfx_test_null(_yfx_parseurlarr['pmf_plan'] || _yfx_parseurlarr['utm_campaign']); var _yfx_pmf_unit = _yfx_test_null(_yfx_parseurlarr['pmf_unit'] || _yfx_parseurlarr['utm_content']); var _yfx_pmf_keyword = _yfx_test_null(_yfx_parseurlarr['pmf_keyword'] || _yfx_parseurlarr['utm_term']); return "&apmfgroup="+_yfx_pmf_group+"&apmfmedium="+_yfx_pmf_medium+"&apmfplan="+_yfx_pmf_plan+"&apmfunit="+_yfx_pmf_unit+"&apmfkeyword="+_yfx_pmf_keyword; }; function _yfx_beforeunload(ev) { _yfx_timeout_count = 0; _yfx_track_event(); if(typeof(_yfx_out_func_dom) === "function"){ _yfx_out_func_dom(); } if(typeof(_yfx_out_func_net) === "function"){ _yfx_out_func_net(); } if(_yfx_timeout_count > 0){ var _yfx_timeout_time = _yfx_timeout_count + (_yfx_sendserverurl.length > 0 ? (_yfx_sendserverurl.length + 1) : 0); _yfx_timeout(math.min(200, _yfx_timeout_time * 50)); } }; function _yfx_track_event(){ var trackdata = window._yfx_trackdata; if( trackdata && trackdata.length > 0 ) { _yfx_timeout_count++; window._yfx_trackdata = window._yfx_trackdata.splice(trackdata.length); for(var k in trackdata) { try{ var _asubtype = _yfx_test_null(trackdata[k][0]); var _aevttype = _yfx_test_null(trackdata[k][0]); var _aevtcate = _yfx_test_null(trackdata[k][1]); var _aevtname = _yfx_test_null(trackdata[k][2]); var _aevtvalue = _yfx_test_null(trackdata[k][3]); var _govname = ""; var _isgovname = 0; var _jsonid = 0; var _json_arr = new array(); var _aevtnumid = new date().gettime()+_yfx_random(100,999); if( _aevttype === 'govevent' ){ _isgovname = 1; _govname = _aevtname; _aevttype = "event"; _aevtname = _aevtname+"-"+_aevtvalue; for( var jk in trackdata[k][4] ){ _json_arr[(_jsonid++)] = _yfx_test_null(jk).replace(":", "-")+':'+_yfx_test_null(trackdata[k][4][jk]).replace(":", "-"); } } else if( _aevttype === 'event' ){ if(typeof(trackdata[k][3]) === 'object'){ for( var jk in trackdata[k][3] ){ _json_arr[(_jsonid++)] = _yfx_test_null(jk).replace(":", "-")+':'+_yfx_test_null(trackdata[k][3][jk]).replace(":", "-"); } } if(_aevtcate === "站内搜索"){ _asubtype = "search"; if(_aevtname === "搜索按钮"){ _yfx_setcookie('_yfx_searchid_'+_yfx_precookie, _aevtnumid, 24 * 3600000); } else if(_aevtname === "搜索结果" || _aevtname === "点击结果" || _aevtname === "浏览结果"){ _aevtnumid = _yfx_redcookie('_yfx_searchid_'+_yfx_precookie) || _aevtnumid; } } } else if( _aevttype === 'userset'){ if(typeof(trackdata[k][1]) === 'object'){ for( var jk in trackdata[k][1] ) { _json_arr[(_jsonid++)] = _yfx_test_null(jk).replace(":", "-")+':'+_yfx_test_null(trackdata[k][1][jk]).replace(":", "-"); var usersetv = _yfx_test_null(trackdata[k][1][jk]); if( jk === 'userid' && usersetv !== "" ){ _yfx_userid = usersetv; _yfx_setcookie('_yfx_userid_'+_yfx_precookie, usersetv, 3 * 365 * 24 * 3600000); } if( jk === 'username' && usersetv !== "" ){ _yfx_username = usersetv; _yfx_setcookie('_yfx_username_'+_yfx_precookie, usersetv, 3 * 365 * 24 * 3600000); } } } _aevtcate = 'userset'; _aevtname = 'userset'; } else if( _aevttype === 'pageview' ){ _yfx_send_common_pageview(_yfx_getpagehost(_aevtcate, 'host'), _yfx_getpagehost(_aevtcate, 'page'), _aevtname, 'page'); continue; } else if( _aevttype === 'abtest' && typeof(trackdata[k][1]) === 'object' ){ _yfx_get_abtest(trackdata[k][1]); continue; } else if( _aevttype === 'recommend' && typeof(trackdata[k][1]) === 'object' ){ _yfx_get_recommend(trackdata[k][1]); continue; } var _yfx_logdata = "aws=" + _yfx_website + "&aser=" + _yfx_server + "&ard=record&ardt=" + _yfx_encode(_aevttype) + "&sendcommondata=&aevttype=" + _yfx_encode(_aevttype) + "&aevtcate=" + _yfx_encode(_aevtcate) + "&aevtname=" + _yfx_encode(_aevtname) + "&aevtsubcate=" + _yfx_encode(_govname) + "&aevtgov=" + _isgovname + "&aevtattr=" + _yfx_encode(_json_arr.join("$$")) + "&aevtmid=" + _aevtnumid + "&aps=" + _yfx_pagehost + "&apu=" + _yfx_encode(_yfx_pageurl) + "&amid=" + _yfx_pagenumberid + "&att=" + _yfx_encode(_yfx_docutitle) + "&arandom=" + math.random(); _yfx_send_ajax_data("record", _asubtype, _yfx_logdata); } catch(e){ _yfx_track_error("事件请求异常", e); } } } }; function _yfx_initlistener() { _yfx_getelementby(['body'], ["click"], _yfx_click); _yfx_getelementby(['body'], ['change'], _yfx_change); if(_yfx_systemtype == "pc"){ _yfx_getelementby(['body'], ['mousemove'], _yfx_mousemove); } else{ _yfx_getelementby(['body'], ['touchend'], _yfx_touchend); } _yfx_addlistener(_yfx_window, 'beforeunload', _yfx_beforeunload);//窗口关闭发送数据 } function _yfx_clickxy() { var x = 0; var y = 0; if (_yfx_window.document.body.scrolltop) { x = _yfx_window.document.body.scrollleft; y = _yfx_window.document.body.scrolltop } else { x = _yfx_window.document.documentelement.scrollleft; y = _yfx_window.document.documentelement.scrolltop }; return { x: x, y: y } }; function _yfx_offset_left(){ return (_yfx_window.document.documentelement.offsetleft || _yfx_window.document.body.offsetleft) || 0; }; function _yfx_offset_top(){ return (_yfx_window.document.documentelement.offsettop || _yfx_window.document.body.offsettop) || 0; }; function _yfx_client_width(){ return (_yfx_window.document.documentelement.clientwidth || _yfx_window.document.body.clientwidth) || 0; }; function _yfx_client_height(){ return (_yfx_window.document.documentelement.clientheight || _yfx_window.document.body.clientheight) || 0; }; function _yfx_scroll_width(){ return (_yfx_window.document.documentelement.scrollwidth || _yfx_window.document.body.scrollwidth) || 0; }; function _yfx_scroll_height(){ return (_yfx_window.document.documentelement.scrollheight || _yfx_window.document.body.scrollheight) || 0; }; function _yfx_scroll_top() { return parseint(_yfx_window.document.documentelement.scrolltop || _yfx_window.document.body.scrolltop) || 0; }; function _yfx_getelementby(ele, act, dofun) { for (var d = 0; d < ele.length; d++) { var j = _yfx_window.document.getelementsbytagname(ele[d]); for (var c = 0; c < j.length; c++) { for (var g = 0; g < act.length; g++) { _yfx_addlistener(j[c], act[g], dofun) } } } }; function _yfx_click(ev) { _yfx_sendclick(ev, "click"); }; function _yfx_change(ev) { _yfx_sendclick(ev, 'change'); }; function _yfx_mousemove(ev) { //_yfx_sendmove(ev, 'mousemove'); }; function _yfx_touchend(ev) { //_yfx_sendmove(ev, 'touchend'); }; function _yfx_gethref(ele){//查找a标签href var b = ele; var i = 0; while ( b && b.tagname !== 'body' && i <= 10) { if( b.tagname === 'a' || b.tagname === 'body')break; b = b.parentnode; i++; } var ahref = _yfx_getattr(b,"href") || ''; return ahref; }; function _yfx_getaouter(ele){//查找a标签outer var b = ele; var i = 0; while ( b && b.tagname !== 'body' && i <= 10) { if( b.tagname === 'a' || b.tagname === 'body')break; b = b.parentnode; i++; } if(b && b.tagname === 'a'){ var innerhtml = b.innerhtml || ""; var outerhtml = b.outerhtml || ""; return (outerhtml.replace(innerhtml, "") || '').replace(/\"|\'|<|>|\[|\]/g, ''); } else{ return ""; } }; function _yfx_getattr(ele,att){ if(ele && ele.tagname !== 'body'){ return _yfx_test_null(ele[att]||ele.getattribute(att))||''; } else{ return ""; } }; function _yfx_setattr(ele,att,attv){ if(ele && ele.tagname !== 'body'){ ele.setattribute(att, attv); } }; function _yfx_position(el) { var a = { x: 0, y: 0 }; a.x = parseint(el.getboundingclientrect().left + _yfx_clickxy().x); a.y = parseint(el.getboundingclientrect().top + _yfx_clickxy().y); return a; }; function _yfx_elewh(el) { if (!el) { var el = event } var w = parseint(el.offsetwidth) || 0; var h = parseint(el.offsetheight) || 0; return { w: w, h: h } }; function _yfx_getvalue(ele) { var rv = ''; if (ele && ele.tagname !== 'body') { var reg = new regexp("[\\u4e00-\\u9fff]+","g"); if (ele.tagname === 'select') { rv = ele.options[ele.selectedindex].text || '' } else { rv = _yfx_getattr(ele,"value") || ''; if(rv=='' && ele.childnodes.length > 0) { rv = ele.innerhtml || ''; } } rv = (rv.replace(/\r|\n|\t| |\s*/g, '').replace(/<[^>].*?>/g, '')) || ''; if(rv.length >= 96){ rv = rv.substring(0, 96).replace("%", "")+"..."; } rv = _yfx_test_null(rv); } return rv; }; function _yfx_getform(ele){ var fn = ""; var b = ele; if(/input|textarea|select|img|button|div|a|span/i.test(ele.tagname)){ var i = 0; while ( b && b.tagname !== 'form' ) { if( b.tagname == 'body' )break; b = b.parentnode; i++; } } if( b && b.tagname == 'form' ) { fn = ((_yfx_getattr(b,"name") || _yfx_getattr(b,"id")) || ''); } return fn; }; function _yfx_get_body_img(){ try{ if(_yfx_test_null(_yfx_contentid) !== ""){ var _bodyimg = _yfx_window.document.getelementsbytagname("body").item(0).getelementsbytagname("img") || []; for(var imgkey in _bodyimg){ var _img_src = _bodyimg[imgkey].src || ""; var _img_width = _bodyimg[imgkey].width || 0; var _img_height = _bodyimg[imgkey].height || 0; if(_yfx_test_null(_yfx_imgurl) === "" && parseint(_img_width) > 360 && parseint(_img_height) > 240 && _img_src.length < 256) { _yfx_imgurl = _img_src; break; } } _yfx_imgurl = _yfx_replace_str(_yfx_imgurl, "http://|https://|//", ""); } return _yfx_test_null(_yfx_imgurl); } catch(e){ _yfx_track_error("内容图片异常", e); } }; function _yfx_show_recommend(recommendid, recommendserver, recommendurl){ try{ var _divid_array = recommendid.split("_"); if(_divid_array.length === 3){ var _eleidv = _yfx_id(recommendid); var ajax_recom = _yfx_ajax_object(); ajax_recom.open("get", recommendurl+"?apitype=recommend&acttype=data&website="+_yfx_website+"&server="+recommendserver+"&uipcode="+_yfx_cookie+"&recomid="+_yfx_test_null(_divid_array[2])+"&contentid="+_yfx_test_null(_yfx_contentid)+"&arandom="+math.random(), true );//ajax发送浏览数据 ajax_recom.setrequestheader('content-type','application/x-www-form-urlencoded'); ajax_recom.send(recommendid); ajax_recom.onreadystatechange=function(){ if (ajax_recom.readystate === 4 && ajax_recom.status === 200){ var response_parse = json.parse(ajax_recom.responsetext)|| ""; var response_text = response_parse.list || ""; var response_name = response_parse.listname || ""; var response_data = response_parse.rspdata || "text"; if(response_data !== "json" && _eleidv !== ""){ _eleidv.innerhtml = response_text; } else{ _yfx_show_recommend_json.push(["yfx_recom_"+_yfx_test_null(_divid_array[2]), response_name, json.stringify(response_text)]); } if(response_text !== ""){ var recommend_log_array = []; var reg = /yfx_recommend_click=\"(.*)\" datasource=\"/ig; var reg_array = response_text.match(reg); for(var regkey in reg_array){ recommend_log_array.push(reg_array[regkey].replace("yfx_recommend_click=\"", "").replace("\" datasource=\"", "")); } if(recommend_log_array.length > 0){ var _yfx_logdata = "aws=" + _yfx_website + "&aser=" + recommendserver + "&ard=show&ardt=show&sendcommondata=&arecomshow=" + _yfx_encode(recommend_log_array.join("$$")) + "&aps=" + _yfx_pagehost + "&apu=" + _yfx_encode(_yfx_pageurl) + "&arandom=" + math.random(); _yfx_send_ajax_data("show", "show", _yfx_logdata); } } } } } } catch(e){ _yfx_track_error("推荐请求异常", e); } }; function _yfx_send_abtest(abtestgroupid, abtestid, abtestversionid, abtestflowtypes, abteststimes, abtestserver){ var _yfx_abtest_etimes = new date().gettime(); var _yfx_logdata = "aws=" + _yfx_website + "&aser=" + abtestserver + "&ard=abtest&ardt=abtest&sendcommondata=&abtestft=" + abtestflowtypes + "&abtestgid=" + abtestgroupid + "&abtestid=" + abtestid + "&abtestvid=" + abtestversionid + "&abtestct=" + (_yfx_abtest_etimes-abteststimes) + "&arandom=" + math.random(); _yfx_send_ajax_data("abtest", "abtest", _yfx_logdata); }; function _yfx_get_abtest(abtestdata){ try{ var response_data = '{"data":{"abteststatus":"failed"}}'; var abtestid = abtestdata.abtestid || 0; var cachetime = abtestdata.cachetime || 0; var callback = abtestdata.callback || ""; var filteritem = abtestdata.filteritem || ""; var abtesturl = abtestdata.abtesturl || _yfx_clickurl; var abtestserver = abtestdata.abtestserver || _yfx_server; var _yfx_abtest_stimes = new date().gettime(); var ajax_abtest = _yfx_ajax_object(); ajax_abtest.open("get", abtesturl+"?apitype=abtest&acttype=getabtestid&website="+_yfx_website+"&server="+abtestserver+"&uipcode="+_yfx_cookie+"&userid="+_yfx_userid+"&abtestid="+abtestid+"&cachetime="+cachetime+"&filteritem="+_yfx_encode(json.stringify(filteritem).replace("'", "\""))+"&abtesturl="+_yfx_encode(_yfx_pagehost+_yfx_pageall)+"&abot="+_yfx_spider+"&arandom="+math.random(), true );//ajax请求测试内容 ajax_abtest.setrequestheader('content-type','application/x-www-form-urlencoded'); ajax_abtest.send(); ajax_abtest.onreadystatechange=function(){ if (ajax_abtest.readystate === 4 && ajax_abtest.status === 200){ response_data = json.parse(ajax_abtest.responsetext || response_data); if(response_data.data.abteststatus === "success"){ if(response_data.data.isabtestwhitelist === false){ var abtestgroupid = response_data.data.abtestgroupid || 0; var abtestid = response_data.data.abtestid || 0; var abtestversionid = response_data.data.abtestversionid || 0; var abtestflowtypes = response_data.data.abtestflowtypes || "cookie"; _yfx_send_abtest(abtestgroupid, abtestid, abtestversionid, abtestflowtypes, _yfx_abtest_stimes, abtestserver); } if(typeof(callback) === "function"){ callback(response_data); } } } } } catch(e){ _yfx_track_error("ab测试请求异常", e); } }; function _yfx_get_recommend(recommenddata){ var recommendid = "yfx_recom_"+recommenddata.recommendid || 0; var recommendurl= recommenddata.recommendurl || _yfx_clickurl; var recommendserver = recommenddata.recommendserver || _yfx_server; _yfx_show_recommend(recommendid, recommendserver, recommendurl); }; var _yfx_sendclicktimes = 0; var _yfx_sendmovetimes = 0; var _yfx_sendmovemaxpos = 0; function _yfx_sendclick(ev, evtypes) { _yfx_track_event(); try{ ev = ev || window.event; var issend = 1; var el = ev.target || ev.srcelement; var elewh = _yfx_elewh(el); var elepos = _yfx_position(el); var tagpox = elepos.x+"_"+elepos.y+"_"+elewh.w+"_"+elewh.h; var elehref = _yfx_gethref(el) || ""; var costtimes = new date().gettime() - _yfx_sendclicktimes; var x = y = 0; if(evtypes === "click"){ if(costtimes < 1000){ issend = 0; } x = parseint((ev.clientx || 0) + _yfx_clickxy().x - _yfx_offset_left()); y = parseint((ev.clienty || 0) + _yfx_clickxy().y - _yfx_offset_top()); if (x <= 0 || y <= 0) { issend = 0; } } if(evtypes === 'change'){ tagpox = _yfx_getattr(el, "_yfx_tagpox") || tagpox; costtimes = costtimes < 100 ? 100 : costtimes; } if(costtimes > 60000){ costtimes = 60000; } //下载文件 var down_ext = _yfx_download_ext.split("|"); if(down_ext.length > 0 && elehref !== ""){ for(var eid = 0; eid < down_ext.length; eid++){ if(elehref.indexof(down_ext[eid]) >= 0){ _yfx_send_common_pageview(_yfx_getpagehost(elehref, 'host'), _yfx_getpagehost(elehref, 'page'), _yfx_getvalue(el), 'down'); break; } } } //点击数据 if(issend == 1){ var recommend_click = _yfx_getattr(el, "yfx_recommend_click"); var recommend_show_click = _yfx_getattr(el, "yfx_recommend_show_click"); if(recommend_show_click !== "") { if(_yfx_show_recommend_click.indexof(recommend_show_click) >= 0){ recommend_show_click = ""; } else { _yfx_show_recommend_click.push(recommend_show_click); } } var _yfx_logdata = "aws=" + _yfx_website + "&aser=" + _yfx_server + "&ard=click&ardt=click&sendcommondata=&aps=" + _yfx_pagehost + "&apu=" + _yfx_encode(_yfx_pageurl) + "&asscw=" + parseint(_yfx_client_width() * _yfx_device_ratio) + "&axpos=" + x + "&aypos=" + y + "&assh=" + screen.height + "&assch=" + _yfx_client_height() + "&asssh=" + _yfx_scroll_height() + "&aclktype=" + evtypes + "&aformname=" + _yfx_getform(el) + "&atag=" + _yfx_test_null(el.tagname) + "&atagtype=" + _yfx_getattr(el, "type") + "&atagid=" + _yfx_getattr(el, "id") + "&atagname=" + _yfx_getattr(el, "name") + "&atagvalue=" + _yfx_encode(_yfx_getvalue(el)) + "&atagurl=" + _yfx_encode(elehref) + "&atagpos=" + tagpox + "&arecomclick=" + recommend_click + "&arecomshowclick=" + recommend_show_click + "&atagtimes=" + costtimes + "&amid=" + _yfx_pagenumberid + "&aevtmid=&arandom=" + math.random(); _yfx_send_ajax_data("click", "click", _yfx_logdata); _yfx_sendclicktimes = new date().gettime(); } } catch(e){ _yfx_track_error("点击请求异常", e); } }; function _yfx_sendmove(ev, evtypes) { try{ ev = ev || window.event; var x = 0; var y = 0; var issend = 1; var costtimes = new date().gettime() - _yfx_sendmovetimes; if(evtypes == "mousemove"){ x = parseint((ev.clientx || 0) + _yfx_clickxy().x - _yfx_offset_left()); y = parseint((ev.clienty || 0) + _yfx_clickxy().y - _yfx_offset_top()); } else if(evtypes == "touchend"){ var touch = ev.changedtouches[0]; /*获取第一个触点*/ x = parseint((touch.clientx || 0) + _yfx_clickxy().x - _yfx_offset_left()); y = parseint((touch.clienty || 0) + _yfx_clickxy().y - _yfx_offset_top()); } if(costtimes < 1000){ issend = 0; } if((y - _yfx_sendmovemaxpos) < _yfx_scroll_height() && _yfx_sendmovemaxpos > 0){ issend = 0; } if(issend == 1){ var _yfx_logdata = "aws=" + _yfx_website + "&aser=" + _yfx_server + "&ard=click&ardt=click&sendcommondata=&aps=" + _yfx_pagehost + "&apu=" + _yfx_encode(_yfx_pageurl) + "&asscw=" + parseint(_yfx_client_width() * _yfx_device_ratio) + "&axpos=" + x + "&aypos=" + y + "&assh=" + screen.height + "&assch=" + _yfx_client_height() + "&asssh=" + _yfx_scroll_height() + "&aclktype=move&aformname=&atag=&atagtype=&atagid=&atagname=&atagvalue=&atagurl=&atagpos=&arecomclick=&arecomshowclick=&atagtimes=" + costtimes + "&amid=" + _yfx_pagenumberid + "&aevtmid=&arandom=" + math.random(); _yfx_send_ajax_data("click", "move", _yfx_logdata); _yfx_sendmovemaxpos = y; _yfx_sendmovetimes = new date().gettime(); } } catch(e){ _yfx_track_error("滑动请求异常", e); } }; //录屏 function _yfx_send_domscreen(){ try{ var _yfx_timer = ""; var _yfx_record_num = parseint(_yfx_cookie.substring(_yfx_cookie.length - 2) || 0); if(_yfx_record_num < _yfx_domrandom && _yfx_domrandom > 0){ _yfx_log("录屏采集 = "+_yfx_domrandom+"%, "+(_yfx_record_num < _yfx_domrandom ? "启动录屏采集" : "停止录屏采集")+""); var yfxevents = []; //录屏 function _yfx_htmldom_send() { var _yfx_starttime = new date().gettime(); _yfx_clickstepnum = _yfx_starttime; _yfx_clicksubstepnum = _yfx_starttime; var body = json.stringify(yfxevents); var bodysize = body.length; if(bodysize > 2){ var _yfx_logdata = "aws=" + _yfx_website + "&aser=" + _yfx_server + "&ard=dom&ardt=dom&sendcommondata=&aps=" + _yfx_pagehost + "&apu=" + _yfx_encode(_yfx_pageurl) + "&amid=" + _yfx_pagenumberid + "&aevtmid=&astepnum=" + _yfx_clickstepnum + "&asubstepnum=" + _yfx_clicksubstepnum + "&adomsize=" + bodysize + "&adomtype=" + _yfx_domdatatype + "&adomdata=" + _yfx_encode(pako.gzip(body, {to:'string'})) + "&arandom=" + math.random(); _yfx_send_ajax_data("dom", _yfx_domdatatype, _yfx_logdata); if(_yfx_domdatatype === "start" && _yfx_test_null(_yfx_timer) !== ""){ _yfx_domdatatype = "click"; clearinterval(_yfx_timer); _yfx_htmldom_record(); } yfxevents = []; _yfx_timeout_count++; } }; _yfx_out_func_dom = _yfx_htmldom_send; function _yfx_start_dom_record(){//正常启动 if(typeof(rrweb) === "object"){ _yfx_imgdomhtmlfunc = rrweb.record({ emit:function(event){ if(event['type'] !== 0){ yfxevents.push(event); } } }); } }; function _yfx_restart_dom_record(){//重启录制 if(typeof(rrweb) === "object"){ if( typeof (_yfx_imgdomhtmlfunc) === "function" ){ _yfx_imgdomhtmlfunc(); _yfx_start_dom_record(); } else{ _yfx_start_dom_record(); } } }; //定时任务 function _yfx_htmldom_record(){ var dom_timeout = _yfx_domtimeout; if(_yfx_domdatatype === "start"){ dom_timeout = 0.5; } _yfx_timer = setinterval(function () { if(typeof(_yfx_htmldom_send) === "function"){ _yfx_htmldom_send(); } }, dom_timeout * 1000); }; var _loadhtmldom = _yfx_create_element("/jssdk/htmldom.js"); _loadhtmldom.onload = function () { _yfx_start_dom_record();//启动录屏 _yfx_htmldom_record(); } } else if(_yfx_domrandom > 0){ _yfx_log(_yfx_record_num+" < "+_yfx_domrandom+" 录屏概率不满足"); } } catch(e){ _yfx_track_error("录屏请求异常", e); } }; //截图 function _yfx_send_imgscreen(type) { try{ var _loadhtmlimg = _yfx_create_element("/jssdk/htmlimg.js"); _loadhtmlimg.onload = function () { var _debugid = _yfx_id('yfx_debug_id'); _debugid.innerhtml = "正在截图, 请保持静止状态, 不要改变页面大小, 需等待3-10秒..."; var _yfx_t = new date(); var _yfx_h = _yfx_str_pad(_yfx_t.gethours(), 2); var _yfx_i = _yfx_str_pad(_yfx_t.getminutes(), 2); var _yfx_s = _yfx_str_pad(_yfx_t.getseconds(), 2); var _yfx_img_width = 1440; var _yfx_html_width = math.max(screen.width, _yfx_scroll_width()); var _yfx_img_x = 0; if(_yfx_systemtype === "phone" && _yfx_device_ratio === 1){ _yfx_img_width = 480; } if(_yfx_html_width > _yfx_img_width){ _yfx_img_x = (_yfx_html_width - _yfx_img_width) / 2; } if(_yfx_img_width > _yfx_html_width){ _yfx_img_x = (_yfx_html_width - _yfx_img_width) / 2; } _yfx_log("正在截图, 图片宽度 = "+_yfx_img_width+", 页面宽度 = "+_yfx_html_width+", 像素比 = "+_yfx_device_ratio+", x位移 = "+_yfx_img_x); settimeout(function(){ if( typeof html2canvas === 'function' ){ _debugid.innerhtml = "截图时间:"+_yfx_h+":"+_yfx_i+":"+_yfx_s+""; html2canvas(_yfx_window.document.body,{//截图参数配置,可指定截图的高度宽度等基本参数 allowtaint: false, tainttest: false, usecors: true, logging: false, scale: 1, width: _yfx_img_width, x:_yfx_img_x, y:0 }).then(function(canvas) { var _yfx_starttime = new date().gettime(); var _yfx_htmlimg = canvas.todataurl("image/jpeg", 0.9);//截图质量 if(_yfx_pageurl.indexof("clickid=") >= 0){ _yfx_pageurl = _yfx_pageurl.substring(0, _yfx_pageurl.indexof("clickid=") - 1); } if(type == "send"){ var _yfx_logdata = "aws=" + _yfx_website + "&aser=" + _yfx_server + "&ard=img&ardt=img&sendcommondata=&asscw=" + _yfx_img_width + "&aps=" + _yfx_pagehost + "&apu=" + _yfx_encode(_yfx_pageurl) + "&att=" + _yfx_encode(_yfx_docutitle) + "&aimgdata=" + _yfx_encode(_yfx_htmlimg) + "&arandom=" + math.random(); _yfx_send_ajax_data("img", "img", _yfx_logdata); } else{ var link = document.createelement("a"); var blob = dataurltoblob(_yfx_htmlimg); var objurl = url.createobjecturl(blob); link.download = _yfx_website+"_"+_yfx_docutitle.replace(/\"|\*|<|>|\?|\\|\/|\\||:/g, "")+"_热点图.jpeg"; link.href = objurl; link.click(); function dataurltoblob(dataurl) { var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],bstr = atob(arr[1]), n = bstr.length, u8arr = new uint8array(n); while(n--){ u8arr[n] = bstr.charcodeat(n); } return new blob([u8arr], {type:mime}); } } })}; }, _yfx_domtimeout * 1000); } } catch(e){ _yfx_track_error("截图请求异常", e); } }; _yfx_out_func_img = _yfx_send_imgscreen; //弹出热点图 function _yfx_open_clickhot(type) { try{ if(_yfx_docuhash.indexof('yeefx_'+type+'=') >= 0){ var hash_arr = _yfx_docuhash.substr(_yfx_docuhash.indexof('yeefx_'+type+'=') + ('yeefx_'+type+'=').length).split("|"); if(hash_arr.length == 10){ var _loadclickhot = _yfx_create_element("//"+hash_arr[0]+"/clickhot.js.jsp?dotype="+type+"&logtype=hotdata&apiurl="+_yfx_encode(hash_arr[0])+"&website="+_yfx_test_null(hash_arr[1])+"&server="+_yfx_test_null(hash_arr[2])+"&starttime="+_yfx_test_null(hash_arr[3])+"&endtime="+_yfx_test_null(hash_arr[4])+"&width="+_yfx_test_null(hash_arr[5])+"&pageurl="+_yfx_encode(_yfx_pagehost+_yfx_pageurl)+"&devicetype="+_yfx_test_null(hash_arr[6])+"&isparam="+_yfx_test_null(hash_arr[7])+"&checkcode="+_yfx_test_null(hash_arr[8])+"&checktime="+_yfx_test_null(hash_arr[9])); } else if(hash_arr.length == 4){ var _loadclickhot = _yfx_create_element("//"+hash_arr[0]+"/clickhot.js.jsp?dotype="+type+"&logtype=hotpage&website="+_yfx_test_null(hash_arr[1])+"&checkcode="+_yfx_test_null(hash_arr[2])+"&checktime="+_yfx_test_null(hash_arr[3])); } else{ var _loadclickhot = _yfx_create_element("//"+hash_arr[0]+"/clickhot.js.jsp?dotype="+type+"&error=参数异常"); } } } catch(e){ _yfx_track_error("热点图请求异常", e); } }; //弹出链接图 function _yfx_open_clickarea() { try{ if(_yfx_docuhash.indexof('yeefx_clickhot=') >= 0){ var hash_arr = _yfx_docuhash.substr(_yfx_docuhash.indexof('yeefx_clickhot=') + 15).split("|"); if(hash_arr.length == 10){ var _loadclickhot = _yfx_create_element("//"+hash_arr[0]+"/clickarea.js.jsp?logtype=hotdata&apiurl="+_yfx_encode(hash_arr[0])+"&website="+_yfx_test_null(hash_arr[1])+"&server="+_yfx_test_null(hash_arr[2])+"&starttime="+_yfx_test_null(hash_arr[3])+"&endtime="+_yfx_test_null(hash_arr[4])+"&width="+_yfx_test_null(hash_arr[5])+"&pageurl="+_yfx_encode(_yfx_pagehost+_yfx_pageurl)+"&devicetype="+_yfx_test_null(hash_arr[6])+"&isparam="+_yfx_test_null(hash_arr[7])+"&checkcode="+_yfx_test_null(hash_arr[8])+"&checktime="+_yfx_test_null(hash_arr[9])); } else if(hash_arr.length == 4){ var _loadclickhot = _yfx_create_element("//"+hash_arr[0]+"/clickhot.js.jsp?logtype=hotpage&website="+_yfx_test_null(hash_arr[1])+"&checkcode="+_yfx_test_null(hash_arr[2])+"&checktime="+_yfx_test_null(hash_arr[3])); } else{ var _loadclickhot = _yfx_create_element("//"+hash_arr[0]+"/clickhot.js.jsp?error=参数异常"); } } } catch(e){ _yfx_track_error("热点图请求异常", e); } }; //体验 function _yfx_send_timing(){ try{ if(_yfx_netrandom <= 0 || _yfx_isfirst <= 0){//概率为0或老访客都不采集 return false; } var _yfx_net_num = parseint(_yfx_cookie.substring(_yfx_cookie.length - 2) || 0);//概率 if (!_yfx_window.performance) { return false; } if(_yfx_net_num < _yfx_netrandom && _yfx_netrandom > 0){ if(_yfx_timingdatatype === "onload"){ _yfx_log("体验采集 = "+_yfx_netrandom+"%, "+(_yfx_net_num < _yfx_netrandom ? "启动体验采集" : "停止体验采集")); } function _yfx_net_cache(netv1, netv2, netv3){ netv1 = netv1 || 0; netv2 = netv2 || 0; netv3 = netv3 || 0; var netv = netv3; if(netv1 > 0 && netv2 > 0){ netv = (netv1 - netv2) === 0 ? netv3 : (netv1 - netv2); } if(netv < 0 || netv > 300 * 1000){//5分钟 netv = 0; } return math.ceil(netv); }; function _yfx_check_url(res_url){//屏蔽自身数据 var selflogcount = 0; var url_check = _yfx_counturl.substring(_yfx_counturl.indexof("//")+2); url_check = url_check.substring(url_check.indexof("/")); if(_yfx_sendserverurl.length > 0){ for(var selfid in _yfx_sendserverurl){ var _yfx_server_counturl = _yfx_sendserverurl[selfid][0]; var url_server_check = _yfx_server_counturl.substring(_yfx_server_counturl.indexof("//")+2); url_server_check = url_server_check.substring(url_server_check.indexof("/")); if(res_url.indexof(url_server_check) >= 0){ selflogcount++; } } } if(res_url.indexof(url_check) >= 0){ selflogcount++; } if(selflogcount > 0){ return false; } else{ return true; } } var _yfx_js_error_array = []; var _yfx_eletag_list_array = []; var _yfx_eletag_error_array = []; function _yfx_get_resource_error() {//资源请求失败 try { if(_yfx_onerror_array.length > 0){ for(var evkey in _yfx_onerror_array) { var ev = _yfx_onerror_array[evkey]; if(ev){ var ele = ev.target || ev.srcelement; var isele = ele instanceof htmlelement; if(isele){ var ele_value = ""; var ele_type = (ele.tagname||"").tolowercase(); if (ele_type === "link") { ele_value = ele.href; } else if (ele_type === "script" || ele_type === "img" || ele_type === "iframe") { ele_value = ele.src; } if(ele_value !== ""){ if(ele_value.indexof("?") > 0){//去掉参数 ele_value = ele_value.substring(0, ele_value.indexof("?")); } ele_type = ele_type === "script" ? "jsfile" : ele_type; ele_type = ele_type === "iframe" ? "ifmpage" : ele_type; ele_value = _yfx_replace_str(ele_value, "http://|https://|//", ""); if(ele_value.length > 0 && _yfx_check_url(ele_value) && _yfx_eletag_error_array.indexof(ele_type+"|o|"+ele_value) < 0){ _yfx_eletag_error_array.push(ele_type+"|o|"+ele_value); } } } else{ var _stack = ev.stack || ((ev.error && ev.error.stack) || ""); _stack = _stack.replace(/\n\t\s*/g, "|n|"); if(_stack.indexof(" at ") > 0){ var _stack_array = _stack.split(" at "); for(var _skey in _stack_array){ _stack_array[_skey] = _stack_array[_skey].trim(); } _stack = _stack_array.join(" at "); } var jsinfo = _yfx_encode("errorfile:"+_yfx_replace_str(ev.filename, "http://|https://|//", "")+"|$|errorline:"+(ev.lineno>10000?0:ev.lineno)+"|$|errorcolumn:"+(ev.colno>10000?0:ev.colno)+"|$|errormsg:"+ev.message+"|$|errorinfo:"+_stack); if(_yfx_js_error_array.indexof(jsinfo) < 0 && ev.message.indexof("script error") < 0){ _yfx_js_error_array.push(jsinfo); } } } }; _yfx_onerror_array = []; } } catch(e) { } }; function _yfx_get_ajax_error(){//ajax请求失败 _yfx_hold_ajax({ onreadystatechange: function (xhr) { if (xhr.readystate === 4 && xhr.status !== 200) { //原始请求onreadystatechange必须得有,否则无法进入这个判断 var the_url = xhr.responseurl; the_url = _yfx_replace_str(the_url, "http://|https://|//", ""); if(the_url.length > 0 && _yfx_check_url(the_url) && _yfx_eletag_error_array.indexof("ajax|o|"+the_url) < 0 && _yfx_check_url(the_url)){ _yfx_eletag_error_array.push("ajax|o|"+the_url); } } }, }); } var _yfx_page_net_ele = 0; var _yfx_page_send_count = 0; var _yfx_timer = ""; var _yfx_page_host_name = _yfx_get_domain(); function _yfx_send_timing_record() {//采集体验数据 var page_timeout = 3; if(_yfx_timingdatatype === "onload"){ page_timeout = 0.5; } _yfx_timer = setinterval(function() { _yfx_send_timing_send(); }, page_timeout * 1000); }; function _yfx_send_timing_send() {//发送体验数据 if(_yfx_netrandom <= 0){ return false; } if (!_yfx_window.performance) { return false; } var _yfx_send_net_num = parseint(_yfx_cookie.substring(_yfx_cookie.length - 2) || 0);//概率 if(_yfx_send_net_num > _yfx_netrandom && _yfx_netrandom > 0){ return false; } var page_net_var = ""; var page_net_array = []; var pagetime = performance.timing; _yfx_get_resource_error();//资源请求失败 if(pagetime.loadeventend > 0){//页面加载完成 var _yfx_pgae_open = "navigate"; var _yfx_page_resource = 0; var stepnum = 0;//默认值 //页面整体数据 if(_yfx_page_send_count === 0){ page_net_var = ""; var page_name = _yfx_pagehost+_yfx_pageurl; if(page_name.length > 256){ page_name = page_name.substring(0,256); } if(page_name.indexof("?") > 0){//去掉参数 page_name = page_name.substring(0, page_name.indexof("?")); } var blankpage = _yfx_net_cache(pagetime.responseend, pagetime.navigationstart, stepnum); var firstpage = _yfx_net_cache(pagetime.domcomplete, pagetime.navigationstart, stepnum); var duration = _yfx_net_cache(pagetime.loadeventend, pagetime.navigationstart, stepnum); page_net_var += "name:"+(page_name)+"|$|";//地址 page_net_var += "type:page|$|";//类型 page_net_var += "click:navigate|$|";//是访问还是刷新 page_net_var += "redirect:"+_yfx_net_cache(pagetime.redirectend, pagetime.redirectstart, stepnum)+"|$|";//重定向时间 page_net_var += "stalled:"+_yfx_net_cache(pagetime.domainlookupstart, pagetime.starttime, stepnum)+"|$|";//请求等待耗时 page_net_var += "dns:"+_yfx_net_cache(pagetime.domainlookupend, pagetime.domainlookupstart, stepnum)+"|$|";//dns解析耗时 page_net_var += "tcp:"+_yfx_net_cache(pagetime.connectend, pagetime.connectstart, stepnum)+"|$|";//tcp连接耗时 page_net_var += "request:"+_yfx_net_cache(pagetime.responsestart, pagetime.requeststart, stepnum)+"|$|";//ttfb耗时 page_net_var += "response:"+_yfx_net_cache(pagetime.responseend, pagetime.responsestart, stepnum)+"|$|";//内容下载耗时 page_net_var += "dom:"+_yfx_net_cache(pagetime.dominteractive, pagetime.responseend, stepnum)+"|$|";//dom解析耗时 page_net_var += "resource:"+_yfx_net_cache(pagetime.loadeventstart, pagetime.domcontentloadedeventend, stepnum)+"|$|";//资源加载耗时 page_net_var += "script:"+_yfx_net_cache(pagetime.domcontentloadedeventend, pagetime.domcontentloadedeventstart, stepnum)+"|$|";//脚本加载耗时 page_net_var += "fetchsize:0|$|";//返回字节 page_net_var += "blankpage:"+blankpage+"|$|";//白屏耗时 page_net_var += "firstpage:"+firstpage+"|$|";//首屏耗时 page_net_var += "duration:"+duration+"|$|";//总耗时 page_net_var += "samedomain:1|$|";//id page_net_var += "statuscode:200|$|";//id page_net_var += "datatype:timing";//getentries page_net_array.push(page_net_var); _yfx_page_send_count++; } //资源明细数据 var _yfx_resource_array = performance.getentriesbytype("resource"); for(var resource_key in _yfx_resource_array) { var stepnum = 0;//默认值 var res_name_domain = 0; var resource = _yfx_resource_array[resource_key]; var res_name = resource.name; var res_type = resource.initiatortype; var check_res_name = res_name.substring(0, res_name.replace("://", ":::").indexof("/")); if(_yfx_page_host_name.indexof(".") === 0){ _yfx_page_host_name = _yfx_page_host_name.substring(1); } if(check_res_name.indexof(_yfx_page_host_name) >= 0){ res_name_domain = 1; } if(_yfx_check_url(res_name)){ res_name = _yfx_replace_str(res_name, "http://|https://|//", ""); if(res_name.length > 256){ res_name = res_name.substring(0,256); } if(res_name.indexof("?") > 0){//去掉参数 res_name = res_name.substring(0, res_name.indexof("?")); } if(res_type === "xmlhttprequest"){ res_type = "ajax"; } else if(res_type === "script"){ res_type = "jsfile"; } else if(res_type === "iframe"){ res_type = "ifmpage"; } var statuscode = "200"; if(_yfx_eletag_error_array.length > 0){ var errorpos = _yfx_eletag_error_array.indexof(res_type+"|o|"+res_name); if(errorpos >= 0){ statuscode = "0"; _yfx_eletag_list_array[errorpos] = "errorstatusok"; } } if (res_name.length > 0 && (res_type === "img" || res_type === "ajax" || res_type === "jsfile" || res_type === "link" || res_type === "css" || res_type === "ifmpage")) {//页面资源 page_net_var = ""; page_net_var += "name:"+(res_name)+"|$|";//地址 page_net_var += "type:"+(res_type || "")+"|$|";//类型 page_net_var += "click:"+_yfx_pgae_open+"|$|";//是访问还是刷新 page_net_var += "redirect:"+_yfx_net_cache(resource.redirectend, resource.redirectstart, stepnum)+"|$|";//重定向时间 page_net_var += "stalled:"+_yfx_net_cache(resource.domainlookupstart, resource.starttime, stepnum)+"|$|";//请求等待耗时 page_net_var += "dns:"+_yfx_net_cache(resource.domainlookupend, resource.domainlookupstart, stepnum)+"|$|";//dns解析耗时 page_net_var += "tcp:"+_yfx_net_cache(resource.connectend, resource.connectstart, stepnum)+"|$|";//tcp连接耗时 page_net_var += "request:"+_yfx_net_cache(resource.responsestart, resource.requeststart, stepnum)+"|$|";//网络请求耗时 page_net_var += "response:"+_yfx_net_cache(resource.responseend, resource.responsestart, stepnum)+"|$|";//内容下载耗时 page_net_var += "dom:"+_yfx_net_cache(resource.dominteractive, resource.responseend, stepnum)+"|$|";//dom解析耗时 page_net_var += "resource:"+_yfx_net_cache(resource.loadeventstart, resource.domcontentloadedeventend, stepnum)+"|$|";//资源加载耗时 page_net_var += "script:"+_yfx_net_cache(resource.domcontentloadedeventend, resource.domcontentloadedeventstart, stepnum)+"|$|";//脚本加载耗 page_net_var += "fetchsize:"+_yfx_net_cache(resource.transfersize, 1, stepnum)+"|$|";//返回字节时 page_net_var += "blankpage:0|$|";//白屏耗时 page_net_var += "firstpage:0|$|";//首屏耗时 page_net_var += "duration:"+_yfx_net_cache(resource.duration, 1, stepnum)+"|$|";//总耗时 page_net_var += "samedomain:"+res_name_domain+"|$|";//id page_net_var += "statuscode:"+statuscode+"|$|";//id page_net_var += "datatype:getentries";//id page_net_array.push(page_net_var); _yfx_page_resource++; } } }; //console.log(_yfx_eletag_error_array); //console.log(_yfx_js_error_array); performance.clearresourcetimings();//清理资源缓存数据 if(_yfx_page_net_ele >= 3){ //window.onerror捕获错误-还有未发的情况 for(var elekey in _yfx_eletag_error_array){ if(_yfx_eletag_error_array[elekey] !== ""){ var eletag_status = _yfx_eletag_error_array[elekey].split("|o|"); var eletag_statusok = _yfx_eletag_list_array[elekey] || ""; if(eletag_status.length === 2 && eletag_statusok !== "errorstatusok"){ var res_name_domain = 0; var check_res_name = eletag_status[1].substring(0, eletag_status[1].replace("://", ":::").indexof("/")); if(check_res_name.indexof(_yfx_page_host_name) >= 0){ res_name_domain = 1; } page_net_var = ""; page_net_var += "name:"+_yfx_encode(eletag_status[1] || "")+"|$|";//地址 page_net_var += "type:"+(eletag_status[0] || "")+"|$|";//类型 page_net_var += "click:"+_yfx_pgae_open+"|$|redirect:0|$|stalled:0|$|dns:0|$|tcp:0|$|request:0|$|response:0|$|dom:0|$|resource:0|$|script:0|$|fetchsize:0|$|blankpage:0|$|firstpage:0|$|duration:0|$|";//总耗时 page_net_var += "samedomain:"+res_name_domain+"|$|statuscode:0"; page_net_array.push(page_net_var); } } } _yfx_eletag_error_array = []; }; //发送数据 if(page_net_array.length > 0 || _yfx_js_error_array.length > 0){ var _pageurl = _yfx_pageurl; if(_pageurl.length > 256){ _pageurl = _pageurl.substring(0,256); } if(_pageurl.indexof("?") > 0){//去掉参数 _pageurl = _pageurl.substring(0, _pageurl.indexof("?")); } var _yfx_logdata = "aws=" + _yfx_website + "&aser=" + _yfx_server + "&ard=net&ardt=" + _yfx_timingdatatype + "&sendcommondata=&aps=" + _yfx_pagehost + "&apu=" + _yfx_encode(_pageurl) + "&amid=" + _yfx_pagenumberid + "&aevtmid=&anetres=" + _yfx_page_resource + "&aerrdata=" + _yfx_encode(_yfx_js_error_array.join("||")) + "&anetdata=" + _yfx_encode(page_net_array.join("||")) + "&arandom=" + math.random(); _yfx_send_ajax_data("net", _yfx_timingdatatype, _yfx_logdata); page_net_array = []; _yfx_js_error_array = []; _yfx_timeout_count++; } if(_yfx_timingdatatype === "onload" && _yfx_test_null(_yfx_timer) !== ""){ clearinterval(_yfx_timer); _yfx_timingdatatype = "click"; _yfx_send_timing_record(); } if(_yfx_page_net_ele >= 60 && _yfx_test_null(_yfx_timer) !== ""){//超过一定次数采集停止 clearinterval(_yfx_timer); } _yfx_page_net_ele++;//发送次数 } }; _yfx_out_func_net = _yfx_send_timing_send; var _loadhtmlajax = _yfx_create_element("/jssdk/htmlajax.js"); _loadhtmlajax.onload = function () { _yfx_get_ajax_error();//ajax请求失败 _yfx_send_timing_record(); } } else{ _yfx_log(_yfx_net_num+" < "+_yfx_netrandom+" 体验概率不满足"); } } catch(e){ _yfx_track_error("性能请求异常", e); } }; function _yfx_send_trackevent(){ var tkcount = 0; var _yfx_tracker = setinterval(function(){ _yfx_track_event(); if(tkcount >= 10){ clearinterval(_yfx_tracker); } tkcount++; }, 500); } if(_yfx_isopendebug === true || _yfx_tracktype === 'html2img'){ var _yfx_obj = _yfx_window.document.createelement("div"); _yfx_obj.id = "yfx_debug_id"; _yfx_obj.classlist.add("rr-block"); _yfx_obj.style.csstext="width: 100%; background: white; position: fixed;top: 0;left: 0;z-index: 10000;font-size:14px;text-align: center;padding:3px;opacity:0.5;"; _yfx_window.document.getelementsbytagname('body').item(0).appendchild(_yfx_obj); } if(_yfx_pagehost === ""){ _yfx_log("受访页面为空 跳过"); } else{ if(_yfx_tracktype === 'html2img'){ _yfx_send_imgscreen("send");//热点图截 } else if(_yfx_tracktype === 'openclickhot'){ _yfx_open_clickhot("clickhot");//弹出热点图 } else if(_yfx_tracktype === 'openclickarea'){ _yfx_open_clickhot("clickarea");//弹出链接图 } else if(_yfx_tracktype === 'common'){ _yfx_initlistener();//点击数据 _yfx_send_common();//浏览数据 _yfx_send_trackevent();//事件数据 _yfx_send_loadtimes();//首屏耗时 _yfx_send_timing();//性能数据 _yfx_send_domscreen();//录屏数据 } } }; /*以上是主函数*/ function _yfx_create_element(file){ var _jsarray = file.split("|"); var _jslength = _jsarray.length; for(var jsid = 0; jsid < _jslength; jsid++){ var _jsfileurl = _jsarray[jsid] || "/jssdk/htmldef.js"; var _yfxjs = _yfx_window.document.createelement("script"); _yfxjs.charset = "utf-8"; if(_jsfileurl.indexof("//") >= 0){ _yfxjs.src = _jsfileurl; } else{ _yfxjs.src = _yfx_counturl + _jsfileurl; } var _yfxjs_t = _yfx_window.document.getelementsbytagname("script")[0]; _yfxjs_t.parentnode.insertbefore(_yfxjs, _yfxjs_t); if(jsid === (_jslength-1)){ return _yfxjs; } } }; function _yfx_check_domain() { if(_yfx_counturl.indexof(_yfx_get_domain()) > 0){ return true; } else{ return false; } }; function _yfx_get_domain() { var host = _yfx_window.document.location.hostname; var ip = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/; if (ip.test(host) === true || host === 'localhost') return host; var regex = /(\[^\]*).*/; var match = host.match(regex); if (typeof match !== "undefined" && null !== match) host = match[1]; if (typeof host !== "undefined" && null !== host) { var strary = host.split("."); if (strary.length > 2) { host = strary.slice(1).join("."); } } return '.' + host; }; function _yfx_log(loginfo)//控制台输出 { if(loginfo.tostring().indexof("耗时") <= 0){ console.log(_yfx_logid+":yeefx "+loginfo); } var _debugid = _yfx_id('yfx_debug_id'); if(_yfx_isopendebug === true && _debugid){ var logarr = _debugid.innerhtml.split("
"); if(logarr.length >= 10){ var nlogarr = logarr.slice(logarr.length-10); } else{ var nlogarr = logarr; } _debugid.innerhtml = nlogarr.join("
")+_yfx_logid+":"+loginfo+"
"; } _yfx_logid++; }; //开始执行js统计代码 _yfx_start_track(); } else{ console.log("不支持cookie或重复加载yeefxcount.js("+(window.navigator.cookieenabled||"unset")+"|"+(_yfx_version||"unset")+")"); }