引用了 jQuery 2.2 ,所以,别用 Ie8 看了
初始化
var tracker1 = new Tracker({
url: "统计的图片地址",
fingerprint: 是否需要 fingerprint[指纹] 参数,默认 false,
data: "全局参数字符串或对象",
statAttr: 需要统计元素,附带的属性,默认为'stat',
stopAttr: 停止统计冒泡的元素属性标志,默认为'statstop',
statParam: 父层元素,参数配置属性,默认为'statparam'
});
// 捕捉整个文档
tracker1.bindClick(document);
// 捕抓某个区域,必须重置 statAttr, stopAttr, statParam 3 个属性,以防与 document 的统计冲突
tracker1.bindClick(document.getElementById('areaCapture'), {
event: 'click', // 默认是 click 事件,表示 click 的时候,发起统计
statAttr: 'a-stat',
stopAttr: 'a-statstop',
statParam: 'a-statparam'
});
文档捕捉测试:
尝试点击看看~
局部捕捉测试:
尝试点击看看~
适配器
为了让脚本在各个浏览器上,都能正常运行,所以设置了 适配器 的概念。
如果想让脚本,在IE系列,也能正常运行,请重写 querySelector 和 queryChild 的方法
如果想让脚本,在IE系列,也能正常运行,请重写 querySelector 和 queryChild 的方法
// 适配器是全局公用的,默认适配方法有如下:
Tracker.setAdapter({
// 请返回单个dom元素
querySelector: function(selector) {
return document.querySelector(selector);
},
// 请返回单个dom元素
queryChild: function(root, selector) {
return root.querySelector(selector);
},
// 返回单个元素的属性
getAttribute: function(ele, attr) {
return ele.getAttribute(attr);
},
// 返回单个元素的HTML
getHtml: function(ele) {
return ele.innerHTML;
},
// 返回单个元素的TEXT
getText: function(ele) {
return ele.innerText;
}
});
统计语法糖
为了让字符串,有更加强大的表现,提供了语法相关的语法糖,以及拓展
// 拓展字符串:获取当前元素的 css/display 属性,如设置属性: stat="display: CssDisplay_x,y"
Tracker.addConverter('CssDisplay', function(adapter, options) {
// options = { key: 当前统计的key属性, root: 当前拥有该属性的元素, type: 'CssDisplay', value: 'x,y', params: ['x', 'y'] }
return options.root.style.display || 'block';
});