(function(doc,win){ var _protocol = "https:" === document.location.protocol ? "https:": "http:"; var pvx_domain = _protocol + '//' + 'ffdw.xcar.com.cn'; function sendNewPv(){ var sendInfo = buildParamObject(); var n_img = new Image(); n_img.src = buildUrl(pvx_domain+'/pv.gif',sendInfo); } sendNewPv(); function SetCookietj(name,value) { var Days = 1/24; var exp = new Date(); exp.setTime(exp.getTime() + (Days * 24 * 60 * 60 * 1000) * 0.5); document.cookie = name + "="+ escape (value) + "; path=/;expires=" + exp.toGMTString()+";domain=.xcar.com.cn" ; } function getCookietj(name){ var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)")); if(arr != null) return unescape(arr[2]); return ''; } function getUserMark(){ return { 'uv':'67d281c8ada66', 'pvx_uv':'67d281c8ada70' }; } function addHandler(a, c, b) { if (a.addEventListener) { addHandler = function(d, f, e) { d.addEventListener(f, e, false) } } else { if (a.attachEvent) { addHandler = function(d, f, e) { d.attachEvent('on' + f, e) } } else { addHandler = function(d, f, e) { d['on' + f] = e } } } addHandler(a, c, b) } function buildTagObj(ele){ var limit = 200; var tagObj = {}; var hf = ele.getAttribute('href'); if(hf){ tagObj['hf'] = hf.length > limit?hf.substring(0,limit): hf; } var src = ele.getAttribute('src'); if(src){ tagObj['src'] = src.length > limit ? src.substring(0,limit): src; } var ocl = ele.getAttribute('onclick'); if(ocl){ tagObj['ocl'] = ocl.length > limit ? ocl.substring(0,limit): ocl; } var an = ele.getAttribute('action'); if(an){ tagObj['an'] = an.length > limit ? an.substring(0,limit): an; } var id = ele.getAttribute('id'); if(id){ tagObj['id'] = id; } var cp = ele.getAttribute('cp'); if(cp){ tagObj['cp'] = cp; } var cs = ele.getAttribute('class'); if(cs){ tagObj['cs'] = cs; } var nm = ele.getAttribute('name'); if(nm){ tagObj['nm'] = nm; } return tagObj; } function getPath(ele){ var str = []; var cnt=1; var pathInfo = []; while(ele != document.body && ele != document.body.parentNode){ var tagObj = buildTagObj(ele); var same = 1; var tmp = ele.parentNode; if(!tmp){ break; } for(var i=1,len=tmp.children.length;i<=len;i++){ if(ele.tagName==tmp.children.item(i-1).tagName && tmp.children.item(i-1).nodeType == 1){ /* IE下 children 可以获取到 注释 */ if(ele == tmp.children.item(i-1)){ break; }else { var tmpTagObj = buildTagObj(tmp); var flag = true; for(var k in tagObj){ if(tagObj[k] != tmpTagObj[k]){ flag = false; break; } } if(flag){ same++; } } cnt++; } } var tagName = ele.tagName.toLowerCase(); str.push(tagName); tagObj['tn'] = cnt > 1 ? tagName+'['+cnt+']': tagName; if(same > 1){ tagObj['sm'] = same; } if(cnt > 1){ str.push('['+cnt+']'); cnt=1; } pathInfo.push(tagObj); str.push(' > '); ele = ele.parentNode; } pathInfo.push({'tn':'body'}); str.push('body'); return { tpinfo:JSON2.stringify(pathInfo), tp:str.join('') }; } var JSON2={}; JSON2.stringify=function(jsonObj){ var jsonArr = []; for(var i=0 ,l = jsonObj.length; i 0) ? bodyScrollTop : documentScrollTop; return scrollTop; } //文档的总高度 function getScrollHeight(){ var scrollHeight = 0, bodyScrollHeight = 0, documentScrollHeight = 0; if(document.body){ bodyScrollHeight = document.body.scrollHeight; } if(document.documentElement){ documentScrollHeight = document.documentElement.scrollHeight; } scrollHeight = (bodyScrollHeight - documentScrollHeight > 0) ? bodyScrollHeight : documentScrollHeight; return scrollHeight; } //浏览器视口的高度 function getWindowHeight(){ var windowHeight = 0; if(document.compatMode == "CSS1Compat"){ windowHeight = document.documentElement.clientHeight; }else{ windowHeight = document.body.clientHeight; } return windowHeight; } function pageSize(){ var clickHeatDocument = document.documentElement && document.documentElement.clientHeight !== 0 ? document.documentElement : document.body; var w = clickHeatDocument.clientWidth || window.innerWidth; var h = getScrollHeight(); var st = getScrollTop(); var vh = getWindowHeight(); return { pw:w, ph:h, pvh:vh, st:st } } function getUrlInfo(){ try{ var domain = document.location.protocol + '//' + document.location.host; var localpage = window.location.href; var _ref= document.referrer||''; var first_ref = getCookietj('uv_firstv_refers'); if(!first_ref){ first_ref =_ref; SetCookietj('uv_firstv_refers',first_ref); } var ds = (window.screen.width || 0) + 'x' + (window.screen.height || 0); _ref = _ref.length > 800 ? _ref.substring(0,800) : _ref; localpage = localpage.length > 800 ? localpage.substring(0,800) : localpage; return { dm:domain, lp:localpage, ref:_ref, fref: first_ref || '', ds:ds } }catch(err){ //console.log('An error occurred while processing click (Javascript error): ' + err.message); } return false; } String.prototype.trim = function() { return this.replace(/(^\s*)|(\s*$)/g, ''); }; function getTargetInfo(target){ try{ var tagText = target.innerText; if(!checkHtml(target.innerHTML)){ tagText = tagText.trim(); tagText = tagText.length > 20 ? tagText.substring(0,20) : tagText; tagText = tagText || ''; } return { tgx:getLeft(target), tgy:getTop(target), tgw:target.offsetWidth, tgh:target.offsetHeight, tgifo:tagText } }catch(err){ //console.log('An error occurred while processing click (Javascript error): ' + err.message); } false; } function buildParamObject(event,target){ var b = getBrowser(); var minf = event ? getMouseInfo(event) : ''; var uinf = getUrlInfo(); var tpath = target ? getPath(target) : ''; var tinf = target ? getTargetInfo(target) : ''; var ps = pageSize(); var usermark = getUserMark(); var sendInfo = {}; if(b){ sendInfo['b'] = b;//浏览器 } if(ps){ sendInfo['pw'] = ps['pw'];//页面宽度 sendInfo['ph'] = ps['ph'];//页面高度 sendInfo['pvh'] = ps['pvh'];//浏览器可视高度 sendInfo['st'] = ps['st'];//屏幕高度 } if(minf){ sendInfo['mx'] = minf['mx'];//鼠标鼠标横坐标 sendInfo['my'] = minf['my'];//鼠标纵坐标 } if(uinf){ sendInfo['dm'] = uinf['dm'];//域名 sendInfo['lp'] = uinf['lp'];//当前页面 sendInfo['ref'] = uinf['ref'];//来源页面 sendInfo['ds'] = uinf['ds'];//分辨率 } if(tinf){ sendInfo['tgx'] = tinf['tgx'];//目标元素横坐标 sendInfo['tgy'] = tinf['tgy'];//目标元素纵坐标 sendInfo['tgw'] = tinf['tgw'];//目标元素宽度 sendInfo['tgh'] = tinf['tgh'];//目标元素高度 sendInfo['tgifo'] = tinf['tgifo']//目标元素 } if(tpath){ sendInfo['tpath'] = tpath['tp'];//目标元素dom树路径 sendInfo['tpinfo'] = tpath['tpinfo'];//目标路径属性描述 } if(usermark){ sendInfo['uv'] = usermark['uv'];//网站整体uv sendInfo['pvx_uv'] = usermark['pvx_uv'];//pvxuv } return sendInfo; } function buildUrl(o_url,json_data){ var str = o_url + '?1=1'; for(var k in json_data){ str = str + '&' + k + '=' + encodeURIComponent(json_data[k]); } return str; } window.clicklog = function(_Creftype,_Crefwd,_time) { var para_arr = []; for (var i in arguments) { var obj={}; obj[i]=arguments[i]; para_arr.push(obj); } var s = new Date(); if (s.getTime() - scrollTime < 1000) { return true; } scrollTime = s.getTime(); var sendInfo = buildParamObject(); var n_img = new Image(); sendInfo['tpinfo']=JSON2.stringify(para_arr); n_img.src = buildUrl(pvx_domain+'/ckl.gif',sendInfo); }; function checkHtml(htmlStr) { var reg = /<[^>]+>/g; return reg.test(htmlStr); } var clickHeatTime = 0; var clickCount = 1; addHandler(doc,'click',function(event){ var s = new Date(); if (s.getTime() - clickHeatTime < 1000) { return true; } clickHeatTime = s.getTime(); var event = event || window.event; var target = event.target||event.srcElement; var sendInfo_old = buildParamObject(event,target); var effective_width = "1000px"; try{ if(effective_width){ var offset_x = sendInfo_old["mx"]-sendInfo_old["tgx"]; var offset_y = sendInfo_old["my"]-sendInfo_old["tgy"]; var $body = document.getElementsByTagName("body")[0]; var oldWidth = $body.style.width; //var oldOverflow = $body.style.overflow; //$body.style.overflow="auto"; $body.style.width=effective_width; var tinf = target ? getTargetInfo(target) : ''; //$body.style.overflow=oldOverflow; $body.style.width=oldWidth; sendInfo_old["fmx"] = tinf["tgx"]+parseInt((tinf["tgw"]*offset_x)/sendInfo_old["tgw"]); sendInfo_old["fmy"] = tinf["tgy"]+parseInt((tinf["tgh"]*offset_y)/sendInfo_old["tgh"]); sendInfo_old["fw"] = effective_width; } }catch(err){ } if(!checkHtml(target.innerHTML)){ var n_img = new Image(); n_img.src = buildUrl(pvx_domain+'/xcar.gif',sendInfo_old); } }); var scrollTime=0; addHandler(window, "scroll",function() { var s = new Date(); if (s.getTime() - scrollTime < 1000) { return true; } scrollTime = s.getTime(); var sendInfo = buildParamObject(); var n_img = new Image(); n_img.src = buildUrl(pvx_domain+'/sl.gif',sendInfo); }); window.onunload = function() { if (typeof evt == 'undefined') { evt = window.event; } if (evt) { var n = window.event.screenX - window.screenLeft; var b = n > document.documentElement.scrollWidth-20; if(b && window.event.clientY < 0 || window.event.altKey){ var n_img = new Image(); var sendInfo = buildParamObject(); n_img.src = buildUrl(pvx_domain+'/ex.gif',sendInfo); //console.log(n_img.src); } } }; window.onbeforeunload = function(){ var n_img = new Image(); var sendInfo = buildParamObject(); n_img.src = buildUrl(pvx_domain+'/ex.gif',sendInfo); }; var idtags = []; for(var i = 0; i < idtags.length; i++){ if(doc.getElementById(idtags[i])){ addHandler(doc.getElementById(idtags[i]),'click',function(){ var n_img = new Image(); var sendInfo = buildParamObject(); n_img.src = buildUrl(pvx_domain+'/tg.gif',sendInfo); }) } } })(document,window);