Skip to content

Commit cff0369

Browse files
author
shengyonggen
committed
Release 1.18.2
1 parent 4689650 commit cff0369

15 files changed

+222
-47
lines changed

CHANGELOG.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
## 1.18.1 (2021-6-19)
1+
## 1.18.2 (2021-6-26)
22
1. 新增
3-
- 可视化全埋点支持自定义属性
3+
- 可视化全埋点支持自定义属性
4+
- 可视化全埋点支持任意层级的 `div` 标签
45
2. 修复
56
- 修复使用 `beacon` 发送方式在 `https` 域名下发送 `http` 请求报错的问题
67
## 1.17.2 (2021-5-31)

core/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.

core/sensorsdata.es6.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

core/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.

heatmap.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "sa-sdk-javascript",
3-
"version": "1.18.1",
3+
"version": "1.18.2",
44
"description": "official sensorsdata javascript sdk",
55
"main": "sensorsdata.min.js",
66
"scripts": {

product/heatmap.full.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9405,7 +9405,7 @@
94059405

94069406
window.sa_jssdk_heatmap_render = function(se, data, type, url) {
94079407
sd = se;
9408-
sd.heatmap_version = '1.18.1';
9408+
sd.heatmap_version = '1.18.2';
94099409
_ = sd._;
94109410

94119411
_.bindReady = function(fn, win) {

product/sensorsdata.amd.full.js

Lines changed: 67 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3271,6 +3271,9 @@
32713271
div: false
32723272
};
32733273
var ignore_tags_default = ['mark', '/mark', 'strong', 'b', 'em', 'i', 'u', 'abbr', 'ins', 'del', 's', 'sup'];
3274+
if (sd.para.heatmap && !_.isObject(sd.para.heatmap)) {
3275+
sd.para.heatmap = {};
3276+
}
32743277
if (_.isObject(sd.para.heatmap)) {
32753278
sd.para.heatmap.clickmap = sd.para.heatmap.clickmap || 'default';
32763279
sd.para.heatmap.scroll_notice_map = sd.para.heatmap.scroll_notice_map || 'default';
@@ -3374,7 +3377,7 @@
33743377

33753378
sd.setInitVar = function() {
33763379
sd._t = sd._t || 1 * new Date();
3377-
sd.lib_version = '1.18.1';
3380+
sd.lib_version = '1.18.2';
33783381
sd.is_first_visitor = false;
33793382
sd.source_channel_standard = 'utm_source utm_medium utm_campaign utm_content utm_term';
33803383
};
@@ -4279,7 +4282,7 @@
42794282
source: 'sa-web-sdk',
42804283
type: 'v-is-vtrack',
42814284
data: {
4282-
sdkversion: '1.18.1'
4285+
sdkversion: '1.18.2'
42834286
}
42844287
},
42854288
'*'
@@ -5012,11 +5015,17 @@
50125015
},
50135016
properties: {}
50145017
};
5015-
5016-
if (_.isObject(p) && _.isObject(p.properties) && !_.isEmptyObject(p.properties) && p.properties.$lib_detail) {
5017-
data.lib.$lib_detail = p.properties.$lib_detail;
5018-
delete p.properties.$lib_detail;
5018+
if (_.isObject(p) && _.isObject(p.properties) && !_.isEmptyObject(p.properties)) {
5019+
if (p.properties.$lib_detail) {
5020+
data.lib.$lib_detail = p.properties.$lib_detail;
5021+
delete p.properties.$lib_detail;
5022+
}
5023+
if (p.properties.$lib_method) {
5024+
data.lib.$lib_method = p.properties.$lib_method;
5025+
delete p.properties.$lib_method;
5026+
}
50195027
}
5028+
50205029
_.extend(data, sd.store.getUnionId(), p);
50215030

50225031
if (_.isObject(p.properties) && !_.isEmptyObject(p.properties)) {
@@ -6348,12 +6357,51 @@
63486357
var theTarget = sd.heatmap.getTargetElement(target, e);
63496358
if (theTarget) {
63506359
that.start(ev, theTarget, theTarget.tagName.toLowerCase());
6360+
} else if (_.isElement(target) && target.tagName.toLowerCase() === 'div' && _.isObject(sd.para.heatmap) && sd.para.heatmap.get_vtrack_config && sd.unlimitedDiv.events.length > 0) {
6361+
if (sd.unlimitedDiv.isTargetEle(target)) {
6362+
that.start(ev, target, target.tagName.toLowerCase(), {
6363+
$lib_method: 'vtrack'
6364+
});
6365+
}
63516366
}
63526367
});
63536368
}
63546369
}
63556370
});;
63566371

6372+
sd.unlimitedDiv = {
6373+
events: [],
6374+
init: function() {
6375+
this.filterWebClickEvents();
6376+
},
6377+
filterWebClickEvents: function(data) {
6378+
this.events = sd.vtrackcollect.getAssignConfigs(function(event) {
6379+
if (_.isObject(event) && event.event.unlimited_div === true && event.event_type === 'webclick') {
6380+
return true;
6381+
} else {
6382+
return false;
6383+
}
6384+
}, data);
6385+
},
6386+
isTargetEle: function(ele) {
6387+
var prop = sd.heatmap.getEleDetail(ele);
6388+
6389+
if (!_.isObject(prop) || !_.isString(prop.$element_path)) {
6390+
return false;
6391+
}
6392+
6393+
for (var i = 0; i < this.events.length; i++) {
6394+
if (_.isObject(this.events[i]) && _.isObject(this.events[i].event) && sd.vtrackcollect.configIsMatch(prop, this.events[i].event)) {
6395+
return true;
6396+
}
6397+
}
6398+
6399+
return false;
6400+
}
6401+
};
6402+
6403+
6404+
63576405
sd.customProp = {
63586406
events: [],
63596407
configSwitch: false,
@@ -6542,6 +6590,7 @@
65426590

65436591

65446592
sd.vtrackcollect = {
6593+
unlimitedDiv: sd.unlimitedDiv,
65456594
config: {},
65466595
storageEnable: true,
65476596
storage_name: 'webjssdkvtrackcollect',
@@ -6716,6 +6765,7 @@
67166765
}
67176766
this.config = data;
67186767
this.customProp.updateEvents();
6768+
this.unlimitedDiv.init(data);
67196769
},
67206770
updateStorage: function(data) {
67216771
if (!this.storageEnable) {
@@ -6763,19 +6813,27 @@
67636813
}
67646814
});
67656815
},
6766-
getAssignConfigs: function(func) {
6816+
getAssignConfigs: function(func, config) {
6817+
if (!this.url_info.server_url && !this.initUrl()) {
6818+
return [];
6819+
}
67676820
var _this = this;
67686821
var arr = [];
6769-
if (!(_.isObject(this.config) && _.isArray(this.config.events) && this.config.events.length > 0)) {
6822+
config = config || this.config;
6823+
config.events = config.events || config.eventList;
6824+
6825+
if (!(_.isObject(config) && _.isArray(config.events) && config.events.length > 0)) {
67706826
return [];
67716827
}
6772-
_.each(this.config.events, function(event) {
6828+
6829+
_.each(config.events, function(event) {
67736830
if (_.isObject(event) && _.isObject(event.event) && event.event.url_host === _this.url_info.page_url.host && event.event.url_path === _this.url_info.page_url.pathname) {
67746831
if (func(event)) {
67756832
arr.push(event);
67766833
}
67776834
}
67786835
});
6836+
67796837
return arr;
67806838
},
67816839
isDiv: function(obj) {

product/sensorsdata.es6.full.js

Lines changed: 67 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3265,6 +3265,9 @@ sd.initPara = function(para) {
32653265
div: false
32663266
};
32673267
var ignore_tags_default = ['mark', '/mark', 'strong', 'b', 'em', 'i', 'u', 'abbr', 'ins', 'del', 's', 'sup'];
3268+
if (sd.para.heatmap && !_.isObject(sd.para.heatmap)) {
3269+
sd.para.heatmap = {};
3270+
}
32683271
if (_.isObject(sd.para.heatmap)) {
32693272
sd.para.heatmap.clickmap = sd.para.heatmap.clickmap || 'default';
32703273
sd.para.heatmap.scroll_notice_map = sd.para.heatmap.scroll_notice_map || 'default';
@@ -3368,7 +3371,7 @@ sd.setPreConfig = function(sa) {
33683371

33693372
sd.setInitVar = function() {
33703373
sd._t = sd._t || 1 * new Date();
3371-
sd.lib_version = '1.18.1';
3374+
sd.lib_version = '1.18.2';
33723375
sd.is_first_visitor = false;
33733376
sd.source_channel_standard = 'utm_source utm_medium utm_campaign utm_content utm_term';
33743377
};
@@ -4273,7 +4276,7 @@ sd.detectMode = function() {
42734276
source: 'sa-web-sdk',
42744277
type: 'v-is-vtrack',
42754278
data: {
4276-
sdkversion: '1.18.1'
4279+
sdkversion: '1.18.2'
42774280
}
42784281
},
42794282
'*'
@@ -5006,11 +5009,17 @@ saEvent.send = function(p, callback) {
50065009
},
50075010
properties: {}
50085011
};
5009-
5010-
if (_.isObject(p) && _.isObject(p.properties) && !_.isEmptyObject(p.properties) && p.properties.$lib_detail) {
5011-
data.lib.$lib_detail = p.properties.$lib_detail;
5012-
delete p.properties.$lib_detail;
5012+
if (_.isObject(p) && _.isObject(p.properties) && !_.isEmptyObject(p.properties)) {
5013+
if (p.properties.$lib_detail) {
5014+
data.lib.$lib_detail = p.properties.$lib_detail;
5015+
delete p.properties.$lib_detail;
5016+
}
5017+
if (p.properties.$lib_method) {
5018+
data.lib.$lib_method = p.properties.$lib_method;
5019+
delete p.properties.$lib_method;
5020+
}
50135021
}
5022+
50145023
_.extend(data, sd.store.getUnionId(), p);
50155024

50165025
if (_.isObject(p.properties) && !_.isEmptyObject(p.properties)) {
@@ -6342,12 +6351,51 @@ var heatmap = (sd.heatmap = {
63426351
var theTarget = sd.heatmap.getTargetElement(target, e);
63436352
if (theTarget) {
63446353
that.start(ev, theTarget, theTarget.tagName.toLowerCase());
6354+
} else if (_.isElement(target) && target.tagName.toLowerCase() === 'div' && _.isObject(sd.para.heatmap) && sd.para.heatmap.get_vtrack_config && sd.unlimitedDiv.events.length > 0) {
6355+
if (sd.unlimitedDiv.isTargetEle(target)) {
6356+
that.start(ev, target, target.tagName.toLowerCase(), {
6357+
$lib_method: 'vtrack'
6358+
});
6359+
}
63456360
}
63466361
});
63476362
}
63486363
}
63496364
});;
63506365

6366+
sd.unlimitedDiv = {
6367+
events: [],
6368+
init: function() {
6369+
this.filterWebClickEvents();
6370+
},
6371+
filterWebClickEvents: function(data) {
6372+
this.events = sd.vtrackcollect.getAssignConfigs(function(event) {
6373+
if (_.isObject(event) && event.event.unlimited_div === true && event.event_type === 'webclick') {
6374+
return true;
6375+
} else {
6376+
return false;
6377+
}
6378+
}, data);
6379+
},
6380+
isTargetEle: function(ele) {
6381+
var prop = sd.heatmap.getEleDetail(ele);
6382+
6383+
if (!_.isObject(prop) || !_.isString(prop.$element_path)) {
6384+
return false;
6385+
}
6386+
6387+
for (var i = 0; i < this.events.length; i++) {
6388+
if (_.isObject(this.events[i]) && _.isObject(this.events[i].event) && sd.vtrackcollect.configIsMatch(prop, this.events[i].event)) {
6389+
return true;
6390+
}
6391+
}
6392+
6393+
return false;
6394+
}
6395+
};
6396+
6397+
6398+
63516399
sd.customProp = {
63526400
events: [],
63536401
configSwitch: false,
@@ -6536,6 +6584,7 @@ sd.customProp = {
65366584

65376585

65386586
sd.vtrackcollect = {
6587+
unlimitedDiv: sd.unlimitedDiv,
65396588
config: {},
65406589
storageEnable: true,
65416590
storage_name: 'webjssdkvtrackcollect',
@@ -6710,6 +6759,7 @@ sd.vtrackcollect = {
67106759
}
67116760
this.config = data;
67126761
this.customProp.updateEvents();
6762+
this.unlimitedDiv.init(data);
67136763
},
67146764
updateStorage: function(data) {
67156765
if (!this.storageEnable) {
@@ -6757,19 +6807,27 @@ sd.vtrackcollect = {
67576807
}
67586808
});
67596809
},
6760-
getAssignConfigs: function(func) {
6810+
getAssignConfigs: function(func, config) {
6811+
if (!this.url_info.server_url && !this.initUrl()) {
6812+
return [];
6813+
}
67616814
var _this = this;
67626815
var arr = [];
6763-
if (!(_.isObject(this.config) && _.isArray(this.config.events) && this.config.events.length > 0)) {
6816+
config = config || this.config;
6817+
config.events = config.events || config.eventList;
6818+
6819+
if (!(_.isObject(config) && _.isArray(config.events) && config.events.length > 0)) {
67646820
return [];
67656821
}
6766-
_.each(this.config.events, function(event) {
6822+
6823+
_.each(config.events, function(event) {
67676824
if (_.isObject(event) && _.isObject(event.event) && event.event.url_host === _this.url_info.page_url.host && event.event.url_path === _this.url_info.page_url.pathname) {
67686825
if (func(event)) {
67696826
arr.push(event);
67706827
}
67716828
}
67726829
});
6830+
67736831
return arr;
67746832
},
67756833
isDiv: function(obj) {

0 commit comments

Comments
 (0)