Skip to content

Commit 2a99666

Browse files
author
shengyonggen
committed
修改点击图button包含span的问题,增加自定义采集点击图的功能,修改a的link
1 parent 39141ba commit 2a99666

File tree

5 files changed

+43
-23
lines changed

5 files changed

+43
-23
lines changed

sensorsdata.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/sdk.js

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,9 @@ logger.info = function() {
110110
};
111111

112112
_.isFunction = function(f) {
113+
if(!f){
114+
return false;
115+
}
113116
try {
114117
return /^\s*\bfunction\b/.test(f);
115118
} catch (x) {
@@ -1942,6 +1945,15 @@ saEvent.send = function(p, callback) {
19421945
_.addEvent(document,'click',function(e){trackAll.clickEvents(e);});
19431946

19441947
},
1948+
trackHeatMap: function(target){
1949+
if((typeof target === 'object') && target.tagName){
1950+
var tagName = target.tagName.toLowerCase();
1951+
var parent_ele = target.parentNode.tagName.toLowerCase();
1952+
if (tagName !== 'button' && tagName !== 'a' && parent_ele !== 'a' && parent_ele !== 'button' && tagName !== 'input' && tagName !== 'textarea') {
1953+
heatmap.start(null,target,tagName);
1954+
}
1955+
}
1956+
},
19451957
autoTrackWithoutProfile:function(para){
19461958
this.autoTrack(_.extend(para,{not_set_profile:true}));
19471959
},
@@ -2052,7 +2064,7 @@ saEvent.send = function(p, callback) {
20522064
return false;
20532065
}
20542066
// 如果是非当前页面会跳转的链接,直接track
2055-
if (!link.href || /^javascript/.test(link.href) || link.target) {
2067+
if (!link.href || /^javascript/.test(link.href) || link.target || link.download || link.onclick) {
20562068
sd.track(event_name, event_prop);
20572069
return false;
20582070
}
@@ -3062,10 +3074,6 @@ var heatmap = {
30623074

30633075
if (sd.para.heatmap.collect_elements === 'all') {
30643076
sd.para.heatmap.collect_elements = 'all';
3065-
} else if (sd.para.heatmap.collect_elements === 'interact') {
3066-
sd.para.heatmap.collect_elements = 'interact';
3067-
} else if(_.isFunction(sd.para.heatmap.collect_elements)){
3068-
sd.para.heatmap.collect_elements = sd.para.heatmap.collect_elements();
30693077
} else {
30703078
sd.para.heatmap.collect_elements = 'interact';
30713079
}
@@ -3081,7 +3089,8 @@ var heatmap = {
30813089
if(!target || !target.parentNode || !target.parentNode.children){
30823090
return false;
30833091
}
3084-
if(target.parentNode.tagName.toLowerCase() === 'a'){
3092+
var parent_ele = target.parentNode.tagName.toLowerCase();
3093+
if(parent_ele === 'a' || parent_ele === 'button'){
30853094
that.start(ev, target.parentNode, target.parentNode.tagName.toLowerCase());
30863095
}else{
30873096
that.start(ev, target, tagName);
@@ -3099,8 +3108,9 @@ var heatmap = {
30993108
if(!target || !target.parentNode || !target.parentNode.children){
31003109
return false;
31013110
}
3102-
if (tagName === 'button' || tagName === 'a' || target.parentNode.tagName.toLowerCase() === 'a' || tagName === 'input' || tagName === 'textarea') {
3103-
if(target.parentNode.tagName.toLowerCase() === 'a'){
3111+
var parent_ele = target.parentNode.tagName.toLowerCase();
3112+
if (tagName === 'button' || tagName === 'a' || parent_ele === 'a' || parent_ele === 'button' || tagName === 'input' || tagName === 'textarea') {
3113+
if(parent_ele === 'a' || parent_ele === 'button'){
31043114
that.start(ev, target.parentNode, target.parentNode.tagName.toLowerCase());
31053115
}else{
31063116
that.start(ev, target, tagName);

src/sensorsdata.full.js

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ if(typeof JSON!=='object'){JSON={}}(function(){'use strict';var rx_one=/^[\],:{}
8484
, slice = ArrayProto.slice
8585
, toString = ObjProto.toString
8686
, hasOwnProperty = ObjProto.hasOwnProperty
87-
, LIB_VERSION = '1.7.8';
87+
, LIB_VERSION = '1.7.10';
8888

8989
sd.lib_version = LIB_VERSION;
9090

@@ -190,6 +190,9 @@ logger.info = function() {
190190
};
191191

192192
_.isFunction = function(f) {
193+
if(!f){
194+
return false;
195+
}
193196
try {
194197
return /^\s*\bfunction\b/.test(f);
195198
} catch (x) {
@@ -2016,6 +2019,15 @@ saEvent.send = function(p, callback) {
20162019
_.addEvent(document,'click',function(e){trackAll.clickEvents(e);});
20172020

20182021
},
2022+
trackHeatMap: function(target){
2023+
if((typeof target === 'object') && target.tagName){
2024+
var tagName = target.tagName.toLowerCase();
2025+
var parent_ele = target.parentNode.tagName.toLowerCase();
2026+
if (tagName !== 'button' && tagName !== 'a' && parent_ele !== 'a' && parent_ele !== 'button' && tagName !== 'input' && tagName !== 'textarea') {
2027+
heatmap.start(null,target,tagName);
2028+
}
2029+
}
2030+
},
20192031
autoTrackWithoutProfile:function(para){
20202032
this.autoTrack(_.extend(para,{not_set_profile:true}));
20212033
},
@@ -2126,7 +2138,7 @@ saEvent.send = function(p, callback) {
21262138
return false;
21272139
}
21282140
// 如果是非当前页面会跳转的链接,直接track
2129-
if (!link.href || /^javascript/.test(link.href) || link.target) {
2141+
if (!link.href || /^javascript/.test(link.href) || link.target || link.download || link.onclick) {
21302142
sd.track(event_name, event_prop);
21312143
return false;
21322144
}
@@ -3136,10 +3148,6 @@ var heatmap = {
31363148

31373149
if (sd.para.heatmap.collect_elements === 'all') {
31383150
sd.para.heatmap.collect_elements = 'all';
3139-
} else if (sd.para.heatmap.collect_elements === 'interact') {
3140-
sd.para.heatmap.collect_elements = 'interact';
3141-
} else if(_.isFunction(sd.para.heatmap.collect_elements)){
3142-
sd.para.heatmap.collect_elements = sd.para.heatmap.collect_elements();
31433151
} else {
31443152
sd.para.heatmap.collect_elements = 'interact';
31453153
}
@@ -3155,7 +3163,8 @@ var heatmap = {
31553163
if(!target || !target.parentNode || !target.parentNode.children){
31563164
return false;
31573165
}
3158-
if(target.parentNode.tagName.toLowerCase() === 'a'){
3166+
var parent_ele = target.parentNode.tagName.toLowerCase();
3167+
if(parent_ele === 'a' || parent_ele === 'button'){
31593168
that.start(ev, target.parentNode, target.parentNode.tagName.toLowerCase());
31603169
}else{
31613170
that.start(ev, target, tagName);
@@ -3173,8 +3182,9 @@ var heatmap = {
31733182
if(!target || !target.parentNode || !target.parentNode.children){
31743183
return false;
31753184
}
3176-
if (tagName === 'button' || tagName === 'a' || target.parentNode.tagName.toLowerCase() === 'a' || tagName === 'input' || tagName === 'textarea') {
3177-
if(target.parentNode.tagName.toLowerCase() === 'a'){
3185+
var parent_ele = target.parentNode.tagName.toLowerCase();
3186+
if (tagName === 'button' || tagName === 'a' || parent_ele === 'a' || parent_ele === 'button' || tagName === 'input' || tagName === 'textarea') {
3187+
if(parent_ele === 'a' || parent_ele === 'button'){
31783188
that.start(ev, target.parentNode, target.parentNode.tagName.toLowerCase());
31793189
}else{
31803190
that.start(ev, target, tagName);

version.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
var sensorsdata_js_sdk_latest_version = '1.7.8';
1+
var sensorsdata_js_sdk_latest_version = '1.7.10';

vtrack.min.js

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)