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")+")");
}