Skip to content

Commit 4e0a6fd

Browse files
author
shengyonggen
committed
Release 1.22.2
1 parent b7e3016 commit 4e0a6fd

17 files changed

+321
-163
lines changed

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,19 @@
1+
## 1.22.2 (2022-04-2)
2+
1. 新增
3+
- 新增支持自定义属性插件
4+
- 新增 `button`,`label`,`li` 点击事件支持无限层级
5+
2. 修复
6+
- 修复点击图方案二切换到方案一监听事件没移除的问题
7+
- 修复单页面下 `heatmap` 里的 `collect_url` 配置不生效的问题
8+
9+
## 1.22.1 (2022-03-29)
10+
1. 新增
11+
- `Web JS SDK` 重构三期,通用工具方法库 `wrench` 独立发布
12+
113
## 1.22.1 (2022-03-29)
214
1. 新增
315
- `Web JS SDK` 重构三期,通用工具方法库 `wrench` 独立发布
16+
417
## 1.21.13 (2022-03-25)
518
1. 修复
619
- 修复热力图引起的 `xss` 问题

core/sensorsdata.amd.min.js

Lines changed: 5 additions & 5 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: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

core/sensorsdata.mtp.min.js

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

heatmap.min.js

Lines changed: 3 additions & 2 deletions
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.22.1",
3+
"version": "1.22.2",
44
"description": "official sensorsdata javascript sdk",
55
"main": "sensorsdata.min.js",
66
"scripts": {

product/heatmap.full.js

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8187,13 +8187,13 @@
81878187
1: '方案一',
81888188
2: '方案二'
81898189
};
8190+
var offScrollAndResizeEventHandle = null;
81908191

81918192
var me = this;
81928193

8193-
function v2Event() {
8194+
function addScrollAndResizeEvent() {
81948195
var timer = null;
81958196
var clearFlag = false;
8196-
$(window).off('scroll.v2');
81978197
$(window).on('scroll.v2', function() {
81988198
if (!clearFlag) {
81998199
$('#heatMapContainer').html('');
@@ -8205,7 +8205,6 @@
82058205
clearFlag = false;
82068206
}, sd.para.heatmap.renderRefreshTime || 1000);
82078207
});
8208-
$(window).off('resize.v2');
82098208
$(window).on('resize.v2', function() {
82108209
if (!clearFlag) {
82118210
$('#heatMapContainer').html('');
@@ -8217,6 +8216,15 @@
82178216
clearFlag = false;
82188217
}, sd.para.heatmap.renderRefreshTime || 1000);
82198218
});
8219+
return function() {
8220+
$(window).off('scroll.v2');
8221+
$(window).off('resize.v2');
8222+
if (timer) {
8223+
clearTimeout(timer);
8224+
timer = null;
8225+
clearFlag = false;
8226+
}
8227+
};
82208228
}
82218229

82228230
function dropdwon(obj) {
@@ -8264,6 +8272,10 @@
82648272
}
82658273
if (name === 'version') {
82668274
$(document).on('keypress', function(event) {
8275+
if (offScrollAndResizeEventHandle) {
8276+
offScrollAndResizeEventHandle();
8277+
offScrollAndResizeEventHandle = null;
8278+
}
82678279
if (event.keyCode == 114) {
82688280
heatmap_render.refreshHeatData(heatmap_render.heatMode);
82698281
}
@@ -8275,7 +8287,7 @@
82758287
if (event.keyCode == 120) {
82768288
$('#chooseVersion').find('span:first').text('方案二');
82778289
heatmap_render.refreshHeatData(2);
8278-
v2Event();
8290+
offScrollAndResizeEventHandle = addScrollAndResizeEvent();
82798291
state = '2';
82808292
}
82818293
});
@@ -8304,11 +8316,15 @@
83048316
id: '#chooseVersion',
83058317
click: function(state, isFirst) {
83068318
if (!isFirst) {
8319+
if (offScrollAndResizeEventHandle) {
8320+
offScrollAndResizeEventHandle();
8321+
offScrollAndResizeEventHandle = null;
8322+
}
83078323
if (state === '1') {
83088324
heatmap_render.refreshHeatData(1);
83098325
} else if (state === '2') {
83108326
heatmap_render.refreshHeatData(2);
8311-
v2Event();
8327+
offScrollAndResizeEventHandle = addScrollAndResizeEvent();
83128328
}
83138329
}
83148330
}
@@ -9420,7 +9436,7 @@
94209436

94219437
window.sa_jssdk_heatmap_render = function(se, data, type, url) {
94229438
sd = se;
9423-
sd.heatmap_version = '1.22.1';
9439+
sd.heatmap_version = '1.22.2';
94249440
_ = sd._;
94259441
_.querySelectorAll = function(val) {
94269442
if (typeof val !== 'string') {

product/sensorsdata.amd.full.js

Lines changed: 64 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -3051,7 +3051,7 @@
30513051
};
30523052

30533053
var source_channel_standard = 'utm_source utm_medium utm_campaign utm_content utm_term';
3054-
var sdkversion_placeholder = '1.22.1';
3054+
var sdkversion_placeholder = '1.22.2';
30553055
var domain_test_key = 'sensorsdata_domain_test';
30563056

30573057
function parseSuperProperties(data) {
@@ -4396,8 +4396,27 @@
43964396
};
43974397

43984398

4399+
var UNLIMITED_TAGS_MAP = {
4400+
label: false,
4401+
li: false,
4402+
a: true,
4403+
button: true
4404+
};
4405+
43994406
var heatmap = {
44004407
otherTags: [],
4408+
initUnlimitedTags: function() {
4409+
each(heatmap.otherTags, function(tagName) {
4410+
if (tagName in UNLIMITED_TAGS_MAP) {
4411+
UNLIMITED_TAGS_MAP[tagName] = true;
4412+
}
4413+
});
4414+
},
4415+
isUnlimitedTag: function(el) {
4416+
if (!el || el.nodeType !== 1) return false;
4417+
var tagName = el.nodeName.toLowerCase();
4418+
return UNLIMITED_TAGS_MAP[tagName] || hasAttributes(el, sd.para.heatmap.track_attr);
4419+
},
44014420
getTargetElement: function(element, e) {
44024421
var that = this;
44034422
var target = element;
@@ -4416,39 +4435,37 @@
44164435
}
44174436

44184437
var parent_ele = target.parentNode;
4419-
var hasAOrAttr = that.hasElement({
4420-
event: (e && e.originalEvent) || e,
4421-
element: element
4422-
}, function(target) {
4423-
return target.tagName.toLowerCase() === 'a' || hasAttributes(target, sd.para.heatmap.track_attr);
4424-
});
44254438

44264439
var otherTags = that.otherTags;
44274440

44284441
if (tagName === 'a' || tagName === 'button' || tagName === 'input' || tagName === 'textarea') {
44294442
return target;
4430-
} else if (indexOf(otherTags, tagName) > -1) {
4443+
}
4444+
if (indexOf(otherTags, tagName) > -1) {
44314445
return target;
4432-
} else if (parent_ele.tagName.toLowerCase() === 'button' || parent_ele.tagName.toLowerCase() === 'a') {
4433-
return parent_ele;
4434-
} else if (tagName === 'area' && parent_ele.tagName.toLowerCase() === 'map' && ry(parent_ele).prev().tagName && ry(parent_ele).prev().tagName.toLowerCase() === 'img') {
4446+
}
4447+
if (tagName === 'area' && parent_ele.tagName.toLowerCase() === 'map' && ry(parent_ele).prev().tagName && ry(parent_ele).prev().tagName.toLowerCase() === 'img') {
44354448
return ry(parent_ele).prev();
4436-
} else if (hasAOrAttr) {
4437-
return hasAOrAttr;
4438-
} else if (tagName === 'div' && sd.para.heatmap.collect_tags.div && that.isDivLevelValid(target)) {
4449+
}
4450+
if (tagName === 'div' && sd.para.heatmap.collect_tags.div && that.isDivLevelValid(target)) {
44394451
var max_level = (sd.para.heatmap && sd.para.heatmap.collect_tags && sd.para.heatmap.collect_tags.div && sd.para.heatmap.collect_tags.div.max_level) || 1;
44404452
if (max_level > 1 || that.isCollectableDiv(target)) {
44414453
return target;
4442-
} else {
4443-
return null;
44444454
}
4445-
} else if (that.isStyleTag(tagName) && sd.para.heatmap.collect_tags.div) {
4455+
}
4456+
if (that.isStyleTag(tagName) && sd.para.heatmap.collect_tags.div) {
44464457
var parentTrackDiv = that.getCollectableParent(target);
44474458
if (parentTrackDiv && that.isDivLevelValid(parentTrackDiv)) {
44484459
return parentTrackDiv;
44494460
}
44504461
}
4451-
return null;
4462+
var unlimitedTag = that.hasElement({
4463+
event: (e && e.originalEvent) || e,
4464+
element: element
4465+
}, function(target) {
4466+
return that.isUnlimitedTag(target);
4467+
});
4468+
return unlimitedTag || null;
44524469
},
44534470
getDivLevels: function(element, rootElement) {
44544471
var path = heatmap.getElementPath(element, true, rootElement);
@@ -4770,17 +4787,22 @@
47704787
}
47714788
return false;
47724789
},
4790+
listenUrlChange: function(callback) {
4791+
callback();
4792+
sd.ee.spa.on('switch', function() {
4793+
callback();
4794+
});
4795+
},
47734796
initScrollmap: function() {
47744797
if (!isObject(sd.para.heatmap) || sd.para.heatmap.scroll_notice_map !== 'default') {
47754798
return false;
47764799
}
4777-
4778-
var checkPage = function() {
4779-
if (sd.para.scrollmap && isFunction(sd.para.scrollmap.collect_url) && !sd.para.scrollmap.collect_url()) {
4780-
return false;
4781-
}
4782-
return true;
4783-
};
4800+
var isPageCollect = true;
4801+
if (sd.para.scrollmap && isFunction(sd.para.scrollmap.collect_url)) {
4802+
this.listenUrlChange(function() {
4803+
isPageCollect = !!sd.para.scrollmap.collect_url();
4804+
});
4805+
}
47844806

47854807
var interDelay = function(param) {
47864808
var interDelay = {};
@@ -4830,27 +4852,30 @@
48304852
delayTime.current_time = new Date();
48314853

48324854
addEvent$1(window, 'scroll', function() {
4833-
if (!checkPage()) {
4855+
if (!isPageCollect) {
48344856
return false;
48354857
}
48364858
delayTime.go();
48374859
});
48384860

48394861
addEvent$1(window, 'unload', function() {
4840-
if (!checkPage()) {
4862+
if (!isPageCollect) {
48414863
return false;
48424864
}
48434865
delayTime.go('notime');
48444866
});
48454867
},
48464868
initHeatmap: function() {
48474869
var that = this;
4870+
var isPageCollect = true;
48484871
if (!isObject(sd.para.heatmap) || sd.para.heatmap.clickmap !== 'default') {
48494872
return false;
48504873
}
48514874

4852-
if (isFunction(sd.para.heatmap.collect_url) && !sd.para.heatmap.collect_url()) {
4853-
return false;
4875+
if (isFunction(sd.para.heatmap.collect_url)) {
4876+
this.listenUrlChange(function() {
4877+
isPageCollect = !!sd.para.heatmap.collect_url();
4878+
});
48544879
}
48554880

48564881
if (sd.para.heatmap.collect_elements === 'all') {
@@ -4860,6 +4885,7 @@
48604885
}
48614886
if (sd.para.heatmap.collect_elements === 'all') {
48624887
addEvent$1(document, 'click', function(e) {
4888+
if (!isPageCollect) return false;
48634889
var ev = e || window.event;
48644890
if (!ev) {
48654891
return false;
@@ -4887,6 +4913,7 @@
48874913
});
48884914
} else {
48894915
addEvent$1(document, 'click', function(e) {
4916+
if (!isPageCollect) return false;
48904917
var ev = e || window.event;
48914918
if (!ev) {
48924919
return false;
@@ -5387,6 +5414,9 @@
53875414
}
53885415
});
53895416
}
5417+
if (sd.para.heatmap && sd.para.heatmap.clickmap === 'default') {
5418+
sd.heatmap.initUnlimitedTags();
5419+
}
53905420
}
53915421

53925422
var readyState = {
@@ -6144,6 +6174,8 @@
61446174

61456175
extend(data, sd.store.getUnionId(), p);
61466176

6177+
dataStageImpl.stage.process('addCustomProps', data);
6178+
61476179
if (isObject(p.properties) && !isEmptyObject(p.properties)) {
61486180
extend(data.properties, p.properties);
61496181
}
@@ -8055,7 +8087,7 @@
80558087
source: 'sa-web-sdk',
80568088
type: 'v-is-vtrack',
80578089
data: {
8058-
sdkversion: '1.22.1'
8090+
sdkversion: '1.22.2'
80598091
}
80608092
},
80618093
'*'
@@ -8397,7 +8429,7 @@
83978429
};
83988430

83998431
var processDef = {
8400-
addCustomProps: 'formatData',
8432+
addCustomProps: null,
84018433
formatData: null
84028434
};
84038435

@@ -8597,7 +8629,7 @@
85978629
sd.vapph5collect = vapph5collect;
85988630
sd.heatmap = heatmap;
85998631
sd.detectMode = detectMode;
8600-
8632+
sd.registerFeature = registerFeature;
86018633
registerFeature(new CoreFeature(sd));
86028634
registerFeature(new DataFormatFeature(sd));
86038635
}

0 commit comments

Comments
 (0)