Skip to content

Commit 02fe225

Browse files
author
shengyonggen
committed
添加神马搜索,优化选择器
1 parent 9d2e8c2 commit 02fe225

File tree

7 files changed

+110
-29
lines changed

7 files changed

+110
-29
lines changed

sensorsdata.amd.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.

sensorsdata.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.

src/sdk.js

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1448,7 +1448,7 @@ _.getSourceFromReferrer = function(){
14481448
}
14491449
}
14501450

1451-
var search_engine = ['www.baidu.','m.baidu.','so.com','sogou.com','youdao.com','google.','yahoo.com/','bing.com/','ask.com/'];
1451+
var search_engine = ['www.baidu.','m.baidu.','m.sm.cn','so.com','sogou.com','youdao.com','google.','yahoo.com/','bing.com/','ask.com/'];
14521452
var social_engine = ['weibo.com','renren.com','kaixin001.com','douban.com','qzone.qq.com','zhihu.com','tieba.baidu.com','weixin.qq.com'];
14531453

14541454
var referrer = document.referrer || '';
@@ -3311,6 +3311,9 @@ var heatmap_render = {
33113311

33123312
var heatmap = {
33133313
getDomIndex: function (el){
3314+
if(el.parentNode && 9 == el.parentNode.nodeType){
3315+
return -1;
3316+
}
33143317
var indexof = [].indexOf;
33153318
if (!el.parentNode) return -1;
33163319
var list = el.parentNode.children;
@@ -3324,14 +3327,36 @@ var heatmap = {
33243327
}
33253328
return -1;
33263329
},
3327-
selector:function (el){
3330+
hasSimilar:function(el){
3331+
if (!el.parentNode) {
3332+
return false;
3333+
}
3334+
if(el.parentNode && 9 == el.parentNode.nodeType){
3335+
return false;
3336+
}
3337+
var list = el.parentNode.children;
3338+
if (!list) return false;
3339+
var len = list.length;
3340+
for (var i = 0; i < len; ++i) {
3341+
if (typeof list[i] === 'object' && el.tagName == list[i].tagName && el !== list[i]){
3342+
return true;
3343+
}
3344+
}
3345+
return false;
3346+
},
3347+
selector:function (el){
33283348
//var classname = _.trim(el.className.baseVal ? el.className.baseVal : el.className);
3329-
var i = el.parentNode && 9 == el.parentNode.nodeType ? -1 : this.getDomIndex(el);
3349+
33303350
if(el.id){
33313351
return '#' + el.id;
33323352
}else{
3333-
return el.tagName.toLowerCase() //+ (classname ? classname.replace(/^| +/g, '.') : '')
3334-
+ (~i ? ':nth-child(' + (i + 1) + ')' : '');
3353+
if(this.hasSimilar(el)){
3354+
var i = this.getDomIndex(el);
3355+
return el.tagName.toLowerCase() //+ (classname ? classname.replace(/^| +/g, '.') : '')
3356+
+ (~i ? ':nth-child(' + (i + 1) + ')' : '');
3357+
}else{
3358+
return el.tagName.toLowerCase();
3359+
}
33353360
}
33363361
},
33373362
getDomSelector : function(el,arr) {
@@ -3345,7 +3370,9 @@ var heatmap = {
33453370
return arr.join(' > ');
33463371
}
33473372
arr.unshift(this.selector(el));
3348-
if (el.id) return arr.join(' > ');
3373+
if (el.id){
3374+
return arr.join(' > ');
3375+
}
33493376
return this.getDomSelector(el.parentNode, arr);
33503377
},
33513378
na : function() {

src/sensorsdata.full.amd.js

Lines changed: 34 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ var ObjProto = Object.prototype;
125125
var slice = ArrayProto.slice;
126126
var toString = ObjProto.toString;
127127
var hasOwnProperty = ObjProto.hasOwnProperty;
128-
var LIB_VERSION = '1.8.13';
128+
var LIB_VERSION = '1.8.14';
129129

130130
sd.lib_version = LIB_VERSION;
131131

@@ -1569,7 +1569,7 @@ _.getSourceFromReferrer = function(){
15691569
}
15701570
}
15711571

1572-
var search_engine = ['www.baidu.','m.baidu.','so.com','sogou.com','youdao.com','google.','yahoo.com/','bing.com/','ask.com/'];
1572+
var search_engine = ['www.baidu.','m.baidu.','m.sm.cn','so.com','sogou.com','youdao.com','google.','yahoo.com/','bing.com/','ask.com/'];
15731573
var social_engine = ['weibo.com','renren.com','kaixin001.com','douban.com','qzone.qq.com','zhihu.com','tieba.baidu.com','weixin.qq.com'];
15741574

15751575
var referrer = document.referrer || '';
@@ -3426,6 +3426,9 @@ var heatmap_render = {
34263426

34273427
var heatmap = {
34283428
getDomIndex: function (el){
3429+
if(el.parentNode && 9 == el.parentNode.nodeType){
3430+
return -1;
3431+
}
34293432
var indexof = [].indexOf;
34303433
if (!el.parentNode) return -1;
34313434
var list = el.parentNode.children;
@@ -3439,14 +3442,36 @@ var heatmap = {
34393442
}
34403443
return -1;
34413444
},
3442-
selector:function (el){
3445+
hasSimilar:function(el){
3446+
if (!el.parentNode) {
3447+
return false;
3448+
}
3449+
if(el.parentNode && 9 == el.parentNode.nodeType){
3450+
return false;
3451+
}
3452+
var list = el.parentNode.children;
3453+
if (!list) return false;
3454+
var len = list.length;
3455+
for (var i = 0; i < len; ++i) {
3456+
if (typeof list[i] === 'object' && el.tagName == list[i].tagName && el !== list[i]){
3457+
return true;
3458+
}
3459+
}
3460+
return false;
3461+
},
3462+
selector:function (el){
34433463
//var classname = _.trim(el.className.baseVal ? el.className.baseVal : el.className);
3444-
var i = el.parentNode && 9 == el.parentNode.nodeType ? -1 : this.getDomIndex(el);
3464+
34453465
if(el.id){
34463466
return '#' + el.id;
34473467
}else{
3448-
return el.tagName.toLowerCase() //+ (classname ? classname.replace(/^| +/g, '.') : '')
3449-
+ (~i ? ':nth-child(' + (i + 1) + ')' : '');
3468+
if(this.hasSimilar(el)){
3469+
var i = this.getDomIndex(el);
3470+
return el.tagName.toLowerCase() //+ (classname ? classname.replace(/^| +/g, '.') : '')
3471+
+ (~i ? ':nth-child(' + (i + 1) + ')' : '');
3472+
}else{
3473+
return el.tagName.toLowerCase();
3474+
}
34503475
}
34513476
},
34523477
getDomSelector : function(el,arr) {
@@ -3460,7 +3485,9 @@ var heatmap = {
34603485
return arr.join(' > ');
34613486
}
34623487
arr.unshift(this.selector(el));
3463-
if (el.id) return arr.join(' > ');
3488+
if (el.id){
3489+
return arr.join(' > ');
3490+
}
34643491
return this.getDomSelector(el.parentNode, arr);
34653492
},
34663493
na : function() {

src/sensorsdata.full.js

Lines changed: 34 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ var ObjProto = Object.prototype;
122122
var slice = ArrayProto.slice;
123123
var toString = ObjProto.toString;
124124
var hasOwnProperty = ObjProto.hasOwnProperty;
125-
var LIB_VERSION = '1.8.13';
125+
var LIB_VERSION = '1.8.14';
126126

127127
sd.lib_version = LIB_VERSION;
128128

@@ -1566,7 +1566,7 @@ _.getSourceFromReferrer = function(){
15661566
}
15671567
}
15681568

1569-
var search_engine = ['www.baidu.','m.baidu.','so.com','sogou.com','youdao.com','google.','yahoo.com/','bing.com/','ask.com/'];
1569+
var search_engine = ['www.baidu.','m.baidu.','m.sm.cn','so.com','sogou.com','youdao.com','google.','yahoo.com/','bing.com/','ask.com/'];
15701570
var social_engine = ['weibo.com','renren.com','kaixin001.com','douban.com','qzone.qq.com','zhihu.com','tieba.baidu.com','weixin.qq.com'];
15711571

15721572
var referrer = document.referrer || '';
@@ -3423,6 +3423,9 @@ var heatmap_render = {
34233423

34243424
var heatmap = {
34253425
getDomIndex: function (el){
3426+
if(el.parentNode && 9 == el.parentNode.nodeType){
3427+
return -1;
3428+
}
34263429
var indexof = [].indexOf;
34273430
if (!el.parentNode) return -1;
34283431
var list = el.parentNode.children;
@@ -3436,14 +3439,36 @@ var heatmap = {
34363439
}
34373440
return -1;
34383441
},
3439-
selector:function (el){
3442+
hasSimilar:function(el){
3443+
if (!el.parentNode) {
3444+
return false;
3445+
}
3446+
if(el.parentNode && 9 == el.parentNode.nodeType){
3447+
return false;
3448+
}
3449+
var list = el.parentNode.children;
3450+
if (!list) return false;
3451+
var len = list.length;
3452+
for (var i = 0; i < len; ++i) {
3453+
if (typeof list[i] === 'object' && el.tagName == list[i].tagName && el !== list[i]){
3454+
return true;
3455+
}
3456+
}
3457+
return false;
3458+
},
3459+
selector:function (el){
34403460
//var classname = _.trim(el.className.baseVal ? el.className.baseVal : el.className);
3441-
var i = el.parentNode && 9 == el.parentNode.nodeType ? -1 : this.getDomIndex(el);
3461+
34423462
if(el.id){
34433463
return '#' + el.id;
34443464
}else{
3445-
return el.tagName.toLowerCase() //+ (classname ? classname.replace(/^| +/g, '.') : '')
3446-
+ (~i ? ':nth-child(' + (i + 1) + ')' : '');
3465+
if(this.hasSimilar(el)){
3466+
var i = this.getDomIndex(el);
3467+
return el.tagName.toLowerCase() //+ (classname ? classname.replace(/^| +/g, '.') : '')
3468+
+ (~i ? ':nth-child(' + (i + 1) + ')' : '');
3469+
}else{
3470+
return el.tagName.toLowerCase();
3471+
}
34473472
}
34483473
},
34493474
getDomSelector : function(el,arr) {
@@ -3457,7 +3482,9 @@ var heatmap = {
34573482
return arr.join(' > ');
34583483
}
34593484
arr.unshift(this.selector(el));
3460-
if (el.id) return arr.join(' > ');
3485+
if (el.id){
3486+
return arr.join(' > ');
3487+
}
34613488
return this.getDomSelector(el.parentNode, arr);
34623489
},
34633490
na : function() {

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.8.13';
1+
var sensorsdata_js_sdk_latest_version = '1.8.14';

vtrack.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.

0 commit comments

Comments
 (0)