博客列表 >javascript ebug属性

javascript ebug属性

弘德誉曦的博客
弘德誉曦的博客原创
2018年01月20日 11:58:042358浏览

注:模块遵守AMD规范。

/**
 * ebug属性模块
 */
define(["jquery"],function($){
var ebug = {
api : location.origin + '?r=common/elog',//数据发送 接口 
baseData : eval('(' + getCookie('sensorsdata2015jssdkcross') + ')' ),
sensorsUTag : function(){
if(typeof getSensorsUTag == 'function'){
return  getSensorsUTag();
}else{
return '';
}
},
/*所有事件都有的预置属性*/
$screen_height : screen.width,     //屏幕高度
$screen_width : screen.height,     //屏幕宽度
$latest_utm_source : '',    //最近一次付费广告系列来源(只要有来源参数,就会重置)
$latest_utm_medium : '',    //最近一次付费广告系列媒介
$latest_utm_term : '',      //最近一次付费广告系列字词
$latest_utm_content : '',   //最近一次付费广告系列内容
$latest_utm_campaign : '',  //最近一次付费广告系列名称
//PageView预置属性
$url : location.href,          //页面地址
$url_path : location.pathname,         //页面路径
$title : document.title,         //页面标题 
//暂未注解的预置属性
$utm_source : '',       //广告系列来源
$utm_medium : '',       //广告系列媒介
$utm_term : '',         //广告系列字词
$utm_content : '',      //广告系列内容
$utm_campaign : '',     //广告系列名称
//最近一次站外前向地址
$latest_referrer : function(){
return  this.baseData.props.$latest_referrer;
},
//前向域名
$referrer_host : function(){
return this.baseData.props.$referrer_host;
},
//最近一次流量来源类型
$latest_traffic_source_type :function(){
return this.baseData.props.$latest_traffic_source_type;    
},
//最近一次搜索引擎关键词
$latest_search_keyword : function(){
return this.baseData.props.$latest_search_keyword;
},
//最近一次站外域名
$latest_referrer_host : function(){
return this.baseData.props.$latest_referrer_host;
},
//是否首日访问
$is_first_day : function(eventName){
var now = new Date().getTime(),
keyStr=eventName+"isFirstDay";
if(typeof(localStorage) === undefined){
return true;//如果浏览器Storage不可用,则总返回是第一天使用
}else {
if(localStorage.getItem(keyStr) === undefined) {//第一次访问 返回true
localStorage.setItem(keyStr,now);//记录第一天首次访问的时间
return true;
}else{
return (now - localStorage.getItem(keyStr)) < 3600 * 24 * 100 ? true : false;
}
}
},
//是否首次访问
$is_first_time : function (eventName){
var now = new Date().getTime(),
keyStr=eventName+"isFirstTime";
if(typeof(localStorage) === undefined){
return true;//如果浏览器Storage不可用,则总返回是第一天使用
}else {
if(localStorage.getItem(keyStr) === undefined) {//第一次访问 返回true
localStorage.setItem(keyStr,now);//记录第一天首次访问的时间
return true;
}else{
return false;
}
}
},
//首次访问时间
$first_visit_time : function (){
if(getCookies("$first_visit_time")) {return;}
setCookie('$first_visit_time',(new Date()).valueOf());
return this;
},
//首次前向地址
$first_referrer : function (){
if(getCookies("$first_referrer")) {return;}
setCookie("$first_referrer",this.baseData.props.$latest_referrer);
return this;
},
//首次前向域名
$first_referrer_host : function(){
if(getCookies("$first_referrer_host")) {return;}
setCookie("$first_referrer_host",this.baseData.props.$referrer_host);
return this;
},
//首次使用的浏览器语言
$first_browser_language : function(){
if(getCookies("$first_browser_language")) {return;}
setCookie("$first_browser_language",navigator.language || '');
return this;
},
/**
* 发送神策日志
*@param array data 形式如 : [
*                                 'eventName' => 'enaem',     //事件名称
*                                 'properties' => [],         //事件属性
*                                 'eventType'=>'PageView'     //事件类型    如:PageView|UserAgent|WebClick
*                                 ]
* @param boolen ceche 是否缓存,如果缓存则等下次调用时发送数据  ,默认不缓存0
*使用场景:
*1.如果埋点只在服务端取数据或者只在客户端埋点取数据(异步传输) ,直接使用方法send($sensorsData)发送数据
*2.如果在服务端或客户端取获取不到完整的数据,可以先获取服务端数据并将其缓存send($sensorsData,1) 然后在客户端获取数据后通过异步传输,调用sensorLog($sensorsData)发送数据,反之亦然。
*/
send : function(data,cache){
cache=cache||0;
console.log(data);
$.ajax({   
url:this.api,   
type:'post',   
data:{'saPre':JSON.stringify(data),'cache':cache,'sensorsUTag':this.sensorsUTag()},   
async : false, //默认为true 异步   
success:function(res){console.log(res)} 
}); 
}
};
/************************神策客户端数据采集公共方法end****************************/ 
//获取神策对象的cookie
function getCookie (name){
var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
var intVal='{"distinct_id":"取值异常","$device_id":"取值异常","props":{"$latest_traffic_source_type":"取值异常","$latest_referrer":"取值异常","$latest_referrer_host":"取值异常","$latest_search_keyword":"取值异常"}}';
if(arr=document.cookie.match(reg)){
if(decodeURIComponent(arr[2]).indexOf('props') == -1) return intVal;
return decodeURIComponent(arr[2]);
}else{
return intVal;
}
}
//设置cookie
function setCookie(name,value){
var Days = 3000;
var exp = new Date();
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
//获取cookie常用方法
function getCookies(name){
var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
if(arr=document.cookie.match(reg))
return unescape(arr[2]);
else
return null;
}
return ebug;
});


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议