Skip to content

Commit e5b4f17

Browse files
author
shengyonggen
committed
多server_url支持,优化发送数据,强制转化login里的数字为字符串
1 parent b57f511 commit e5b4f17

File tree

6 files changed

+180
-38
lines changed

6 files changed

+180
-38
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: 75 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1274,6 +1274,23 @@ _.ry.init.prototype = {
12741274
this.ele.parentNode.insertBefore(ele, this.ele);
12751275
ele.appendChild(this.ele);
12761276
return _.ry(ele);
1277+
},
1278+
getCssStyle: function(prop){
1279+
var result = this.ele.style.getPropertyValue(prop);
1280+
if (result) {
1281+
return result;
1282+
}
1283+
var rules = getMatchedCSSRules(this.ele);
1284+
if(!rules || !_.isArray(rules)){
1285+
return null;
1286+
}
1287+
for (var i = rules.length - 1; i >= 0; i--) {
1288+
var r = rules[i];
1289+
result = r.style.getPropertyValue(prop);
1290+
if (result) {
1291+
return result;
1292+
}
1293+
}
12771294
}
12781295
};
12791296

@@ -1405,28 +1422,61 @@ sd.sendState.getSendCall = function(data, callback) {
14051422
(typeof callback === 'function') && callback();
14061423
return false;
14071424
}
1408-
14091425
logger.info(data);
1426+
this.prepareServerUrl(data,callback);
1427+
};
1428+
1429+
sd.sendState.prepareServerUrl = function(data,callback){
1430+
if(_.isArray(sd.para.server_url)){
1431+
for(var i =0; i<sd.para.server_url.length;i++){
1432+
if (sd.para.server_url[i].indexOf('?') !== -1) {
1433+
this.sendCall(sd.para.server_url[i] + '&data=' + encodeURIComponent(_.base64Encode(data)),callback);
1434+
} else {
1435+
this.senCall(sd.para.server_url[i] + '?data=' + encodeURIComponent(_.base64Encode(data)),callback);
1436+
}
1437+
}
1438+
}else{
1439+
if (sd.para.server_url.indexOf('?') !== -1) {
1440+
this.sendCall(sd.para.server_url + '&data=' + encodeURIComponent(_.base64Encode(data)),callback);
1441+
} else {
1442+
this.sendCall(sd.para.server_url + '?data=' + encodeURIComponent(_.base64Encode(data)),callback);
1443+
}
1444+
}
1445+
};
1446+
1447+
sd.sendState.callBack = function(callback){
1448+
1449+
(typeof callback === 'function') && callback();
1450+
1451+
};
1452+
1453+
sd.sendState.sendCall = function(server_url,callback){
1454+
14101455

14111456
++this._receive;
14121457
var state = '_state' + this._receive;
14131458
var me = this;
14141459
this[state] = document.createElement('img');
1415-
this[state].onload = this[state].onerror = function(e) {
1460+
1461+
this[state].onload = function(e) {
14161462
me[state].onload = null;
1417-
me[state].onerror = null;
14181463
delete me[state];
14191464
++me._complete;
1420-
(typeof callback === 'function') && callback();
1465+
me.callBack(callback);
1466+
};
1467+
this[state].onerror = function(e) {
1468+
me[state].onerror = null;
1469+
delete me[state];
1470+
me.callBack(callback);
1471+
};
1472+
this[state].onabort = function(e) {
1473+
delete me[state];
1474+
me.callBack(callback);
14211475
};
14221476

1423-
if (sd.para.server_url.indexOf('?') !== -1) {
1424-
this[state].src = sd.para.server_url + '&data=' + encodeURIComponent(_.base64Encode(data));
1425-
} else {
1426-
this[state].src = sd.para.server_url + '?data=' + encodeURIComponent(_.base64Encode(data));
1427-
}
1428-
};
1477+
this[state].src = server_url;
14291478

1479+
};
14301480

14311481
// 检查是否是新用户(第一次种cookie,且在8个小时内的)
14321482
var saNewUser = {
@@ -2268,6 +2318,9 @@ saEvent.send = function(p, callback) {
22682318
* @param {string} distinct_id
22692319
* */
22702320
sd.identify = function(id, isSave) {
2321+
if(typeof id === 'number'){
2322+
id = String(id);
2323+
}
22712324
var firstId = store.getFirstId();
22722325
if (typeof id === 'undefined') {
22732326
if(firstId){
@@ -2375,6 +2428,9 @@ saEvent.send = function(p, callback) {
23752428
};
23762429

23772430
sd.login = function(id){
2431+
if(typeof id === 'number'){
2432+
id = String(id);
2433+
}
23782434
if (saEvent.check({distinct_id: id})) {
23792435
var firstId = store.getFirstId();
23802436
var distinctId = store.getDistinctId();
@@ -2656,9 +2712,15 @@ var heatmap_render = {
26562712
},
26572713
renderHeatData: function(selector,data,key){
26582714
var dom = _.ry(selector[0]);
2715+
// 优化input不支持伪类的样式
26592716
if(dom.ele.tagName.toLowerCase() === 'input' || dom.ele.tagName.toLowerCase() === 'textarea'){
2660-
dom = dom.wrap('span');
2661-
dom.ele.style.display = 'inline-block';
2717+
var width = dom.getCssStyle('width');
2718+
dom = dom.wrap('span');
2719+
if(typeof width === 'string' && width.slice(-1) === '%'){
2720+
dom.ele.style.width = width;
2721+
}
2722+
dom.ele.style.display = 'inline-block';
2723+
26622724
}
26632725
this.heatDataElement.push(dom);
26642726
dom.attr('data-heat-place',String(key))
@@ -2955,7 +3017,7 @@ var heatmap_render = {
29553017

29563018
},
29573019
setCssStyle: function(){
2958-
var css = '.sa-heat-box-head-2017322{border-bottom:1px solid rgba(0,0,0,.06);cursor:move;height:30px;background:#E1E1E1;color:#999;clear:both}.sa-heat-box-effect-2017314{animation-duration:.5s;animation-fill-mode:both;animation-iteration-count:1;animation-name:sa-heat-box-effect-2017314}@keyframes sa-heat-box-effect-2017314{0%{opacity:.6}100%{opacity:1}}.sa-click-area{position:relative}.sa-click-area:before{cursor:pointer;content:"";width:100%;position:absolute;left:0;top:0;bottom:0}.sa-click-area.sa-click-area0:before{background:rgba(254,254,155,.75);box-shadow:0 0 0 2px rgba(254,254,155,1) inset}.sa-click-area.sa-click-area0:hover::before{background:rgba(254,254,155,.85)}.sa-click-area.sa-click-area1:before{background:rgba(255,236,142,.75);box-shadow:0 0 0 2px rgba(255,236,142,1) inset}.sa-click-area.sa-click-area1:hover::before{background:rgba(255,236,142,.85)}.sa-click-area.sa-click-area2:before{background:rgba(255,188,113,.75);box-shadow:0 0 0 2px rgba(255,188,113,1) inset}.sa-click-area.sa-click-area2:hover::before{background:rgba(255,188,113,.85)}.sa-click-area.sa-click-area3:before{background:rgba(255,120,82,.75);box-shadow:0 0 0 2px rgba(255,120,82,1) inset}.sa-click-area.sa-click-area3:hover::before{background:rgba(255,120,82,.85)}.sa-click-area.sa-click-area4:before{background:rgba(255,65,90,.75);box-shadow:0 0 0 2px rgba(255,65,90,1) inset}.sa-click-area.sa-click-area4:hover::before{background:rgba(255,65,90,.85)}.sa-click-area.sa-click-area5:before{background:rgba(199,0,18,.75);box-shadow:0 0 0 2px rgba(199,0,18,1) inset}.sa-click-area.sa-click-area5:hover::before{background:rgba(199,0,18,.85)}.sa-click-area.sa-click-area6:before{background:rgba(127,0,79,.75);box-shadow:0 0 0 3px rgba(127,0,79,1) inset}.sa-click-area.sa-click-area6:hover::before{background:rgba(127,0,79,.85)}.sa-click-area .sa-click-area:before{background:0 0!important}.sa-click-area:after{height:14px;line-height:14px;margin:-7px 0 0 -28px;width:56px;color:#fff;content:attr(data-click);font-size:14px;font-weight:700;left:50%;line-height:1em;position:absolute;text-align:center;text-indent:0;text-shadow:1px 1px 2px #000;top:50%;z-index:10}';
3020+
var css = '.sa-heat-box-head-2017322{border-bottom:1px solid rgba(0,0,0,.06);cursor:move;height:30px;background:#e1e1e1;color:#999;clear:both}.sa-heat-box-effect-2017314{animation-duration:.5s;animation-fill-mode:both;animation-iteration-count:1;animation-name:sa-heat-box-effect-2017314}@keyframes sa-heat-box-effect-2017314{0%{opacity:.6}to{opacity:1}}.sa-click-area{position:relative}.sa-click-area:before{cursor:pointer;content:"";width:100%;position:absolute;left:0;top:0;bottom:0}.sa-click-area.sa-click-area0:before{background:hsla(60,98%,80%,.75);box-shadow:0 0 0 2px #fefe9b inset}.sa-click-area.sa-click-area0:hover:before,input.sa-click-area.sa-click-area0,textarea.sa-click-area.sa-click-area0{background:hsla(60,98%,80%,.85)}.sa-click-area.sa-click-area1:before{background:rgba(255,236,142,.75);box-shadow:0 0 0 2px #ffec8e inset}.sa-click-area.sa-click-area1:hover:before,input.sa-click-area.sa-click-area1,textarea.sa-click-area.sa-click-area1{background:rgba(255,236,142,.85)}.sa-click-area.sa-click-area2:before{background:rgba(255,188,113,.75);box-shadow:0 0 0 2px #ffbc71 inset}.sa-click-area.sa-click-area2:hover:before,input.sa-click-area.sa-click-area2,textarea.sa-click-area.sa-click-area2{background:rgba(255,188,113,.85)}.sa-click-area.sa-click-area3:before{background:rgba(255,120,82,.75);box-shadow:0 0 0 2px #ff7852 inset}.sa-click-area.sa-click-area3:hover:before,input.sa-click-area.sa-click-area3,textarea.sa-click-area.sa-click-area3{background:rgba(255,120,82,.85)}.sa-click-area.sa-click-area4:before{background:rgba(255,65,90,.75);box-shadow:0 0 0 2px #ff415a inset}.sa-click-area.sa-click-area4:hover:before,input.sa-click-area.sa-click-area4,textarea.sa-click-area.sa-click-area4{background:rgba(255,65,90,.85)}.sa-click-area.sa-click-area5:before{background:rgba(199,0,18,.75);box-shadow:0 0 0 2px #c70012 inset}.sa-click-area.sa-click-area5:hover:before,input.sa-click-area.sa-click-area5,textarea.sa-click-area.sa-click-area5{background:rgba(199,0,18,.85)}.sa-click-area.sa-click-area6:before{background:rgba(127,0,79,.75);box-shadow:0 0 0 3px #7f004f inset}.sa-click-area.sa-click-area6:hover:before,input.sa-click-area.sa-click-area6,textarea.sa-click-area.sa-click-area6{background:rgba(127,0,79,.85)}.sa-click-area .sa-click-area:before{background:0 0!important}.sa-click-area:after{height:14px;line-height:14px;margin:-7px 0 0 -28px;width:56px;color:#fff;content:attr(data-click);font-size:14px;font-weight:700;left:50%;line-height:1em;position:absolute;text-align:center;text-indent:0;text-shadow:1px 1px 2px #000;top:50%;z-index:10}';
29593021

29603022
var style = document.createElement('style');
29613023
style.type = 'text/css';

src/sensorsdata.full.js

Lines changed: 86 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -59,13 +59,22 @@ if(typeof JSON!=='object'){JSON={}}(function(){'use strict';var rx_one=/^[\],:{}
5959
use_app_track: false
6060

6161
};
62+
var i;
6263
// 合并配置
63-
for (var i in sd.para_default) {
64+
for (i in sd.para_default) {
6465
if (sd.para[i] === void 0) {
6566
sd.para[i] = sd.para_default[i];
6667
}
6768
}
6869
// 优化配置
70+
if(typeof sd.para.server_url === 'object' && sd.para.server_url.length){
71+
for(i = 0; i < sd.para.server_url.length; i++){
72+
if (!/sa\.gif[^\/]*$/.test(sd.para.server_url[i])) {
73+
sd.para.server_url[i] = sd.para.server_url[i].replace(/\/sa$/, '/sa.gif').replace(/(\/sa)(\?[^\/]+)$/, '/sa.gif$2');
74+
}
75+
}
76+
}
77+
6978
if (!/sa\.gif[^\/]*$/.test(sd.para.server_url)) {
7079
sd.para.server_url = sd.para.server_url.replace(/\/sa$/, '/sa.gif').replace(/(\/sa)(\?[^\/]+)$/, '/sa.gif$2');
7180
}
@@ -84,7 +93,7 @@ if(typeof JSON!=='object'){JSON={}}(function(){'use strict';var rx_one=/^[\],:{}
8493
, slice = ArrayProto.slice
8594
, toString = ObjProto.toString
8695
, hasOwnProperty = ObjProto.hasOwnProperty
87-
, LIB_VERSION = '1.7.13';
96+
, LIB_VERSION = '1.7.14';
8897

8998
sd.lib_version = LIB_VERSION;
9099

@@ -1354,6 +1363,23 @@ _.ry.init.prototype = {
13541363
this.ele.parentNode.insertBefore(ele, this.ele);
13551364
ele.appendChild(this.ele);
13561365
return _.ry(ele);
1366+
},
1367+
getCssStyle: function(prop){
1368+
var result = this.ele.style.getPropertyValue(prop);
1369+
if (result) {
1370+
return result;
1371+
}
1372+
var rules = getMatchedCSSRules(this.ele);
1373+
if(!rules || !_.isArray(rules)){
1374+
return null;
1375+
}
1376+
for (var i = rules.length - 1; i >= 0; i--) {
1377+
var r = rules[i];
1378+
result = r.style.getPropertyValue(prop);
1379+
if (result) {
1380+
return result;
1381+
}
1382+
}
13571383
}
13581384
};
13591385

@@ -1485,28 +1511,61 @@ sd.sendState.getSendCall = function(data, callback) {
14851511
(typeof callback === 'function') && callback();
14861512
return false;
14871513
}
1488-
14891514
logger.info(data);
1515+
this.prepareServerUrl(data,callback);
1516+
};
1517+
1518+
sd.sendState.prepareServerUrl = function(data,callback){
1519+
if(_.isArray(sd.para.server_url)){
1520+
for(var i =0; i<sd.para.server_url.length;i++){
1521+
if (sd.para.server_url[i].indexOf('?') !== -1) {
1522+
this.sendCall(sd.para.server_url[i] + '&data=' + encodeURIComponent(_.base64Encode(data)),callback);
1523+
} else {
1524+
this.senCall(sd.para.server_url[i] + '?data=' + encodeURIComponent(_.base64Encode(data)),callback);
1525+
}
1526+
}
1527+
}else{
1528+
if (sd.para.server_url.indexOf('?') !== -1) {
1529+
this.sendCall(sd.para.server_url + '&data=' + encodeURIComponent(_.base64Encode(data)),callback);
1530+
} else {
1531+
this.sendCall(sd.para.server_url + '?data=' + encodeURIComponent(_.base64Encode(data)),callback);
1532+
}
1533+
}
1534+
};
1535+
1536+
sd.sendState.callBack = function(callback){
1537+
1538+
(typeof callback === 'function') && callback();
1539+
1540+
};
1541+
1542+
sd.sendState.sendCall = function(server_url,callback){
1543+
14901544

14911545
++this._receive;
14921546
var state = '_state' + this._receive;
14931547
var me = this;
14941548
this[state] = document.createElement('img');
1495-
this[state].onload = this[state].onerror = function(e) {
1549+
1550+
this[state].onload = function(e) {
14961551
me[state].onload = null;
1497-
me[state].onerror = null;
14981552
delete me[state];
14991553
++me._complete;
1500-
(typeof callback === 'function') && callback();
1554+
me.callBack(callback);
1555+
};
1556+
this[state].onerror = function(e) {
1557+
me[state].onerror = null;
1558+
delete me[state];
1559+
me.callBack(callback);
1560+
};
1561+
this[state].onabort = function(e) {
1562+
delete me[state];
1563+
me.callBack(callback);
15011564
};
15021565

1503-
if (sd.para.server_url.indexOf('?') !== -1) {
1504-
this[state].src = sd.para.server_url + '&data=' + encodeURIComponent(_.base64Encode(data));
1505-
} else {
1506-
this[state].src = sd.para.server_url + '?data=' + encodeURIComponent(_.base64Encode(data));
1507-
}
1508-
};
1566+
this[state].src = server_url;
15091567

1568+
};
15101569

15111570
// 检查是否是新用户(第一次种cookie,且在8个小时内的)
15121571
var saNewUser = {
@@ -2342,6 +2401,9 @@ saEvent.send = function(p, callback) {
23422401
* @param {string} distinct_id
23432402
* */
23442403
sd.identify = function(id, isSave) {
2404+
if(typeof id === 'number'){
2405+
id = String(id);
2406+
}
23452407
var firstId = store.getFirstId();
23462408
if (typeof id === 'undefined') {
23472409
if(firstId){
@@ -2449,6 +2511,9 @@ saEvent.send = function(p, callback) {
24492511
};
24502512

24512513
sd.login = function(id){
2514+
if(typeof id === 'number'){
2515+
id = String(id);
2516+
}
24522517
if (saEvent.check({distinct_id: id})) {
24532518
var firstId = store.getFirstId();
24542519
var distinctId = store.getDistinctId();
@@ -2730,9 +2795,15 @@ var heatmap_render = {
27302795
},
27312796
renderHeatData: function(selector,data,key){
27322797
var dom = _.ry(selector[0]);
2798+
// 优化input不支持伪类的样式
27332799
if(dom.ele.tagName.toLowerCase() === 'input' || dom.ele.tagName.toLowerCase() === 'textarea'){
2734-
dom = dom.wrap('span');
2735-
dom.ele.style.display = 'inline-block';
2800+
var width = dom.getCssStyle('width');
2801+
dom = dom.wrap('span');
2802+
if(typeof width === 'string' && width.slice(-1) === '%'){
2803+
dom.ele.style.width = width;
2804+
}
2805+
dom.ele.style.display = 'inline-block';
2806+
27362807
}
27372808
this.heatDataElement.push(dom);
27382809
dom.attr('data-heat-place',String(key))
@@ -3029,7 +3100,7 @@ var heatmap_render = {
30293100

30303101
},
30313102
setCssStyle: function(){
3032-
var css = '.sa-heat-box-head-2017322{border-bottom:1px solid rgba(0,0,0,.06);cursor:move;height:30px;background:#E1E1E1;color:#999;clear:both}.sa-heat-box-effect-2017314{animation-duration:.5s;animation-fill-mode:both;animation-iteration-count:1;animation-name:sa-heat-box-effect-2017314}@keyframes sa-heat-box-effect-2017314{0%{opacity:.6}100%{opacity:1}}.sa-click-area{position:relative}.sa-click-area:before{cursor:pointer;content:"";width:100%;position:absolute;left:0;top:0;bottom:0}.sa-click-area.sa-click-area0:before{background:rgba(254,254,155,.75);box-shadow:0 0 0 2px rgba(254,254,155,1) inset}.sa-click-area.sa-click-area0:hover::before{background:rgba(254,254,155,.85)}.sa-click-area.sa-click-area1:before{background:rgba(255,236,142,.75);box-shadow:0 0 0 2px rgba(255,236,142,1) inset}.sa-click-area.sa-click-area1:hover::before{background:rgba(255,236,142,.85)}.sa-click-area.sa-click-area2:before{background:rgba(255,188,113,.75);box-shadow:0 0 0 2px rgba(255,188,113,1) inset}.sa-click-area.sa-click-area2:hover::before{background:rgba(255,188,113,.85)}.sa-click-area.sa-click-area3:before{background:rgba(255,120,82,.75);box-shadow:0 0 0 2px rgba(255,120,82,1) inset}.sa-click-area.sa-click-area3:hover::before{background:rgba(255,120,82,.85)}.sa-click-area.sa-click-area4:before{background:rgba(255,65,90,.75);box-shadow:0 0 0 2px rgba(255,65,90,1) inset}.sa-click-area.sa-click-area4:hover::before{background:rgba(255,65,90,.85)}.sa-click-area.sa-click-area5:before{background:rgba(199,0,18,.75);box-shadow:0 0 0 2px rgba(199,0,18,1) inset}.sa-click-area.sa-click-area5:hover::before{background:rgba(199,0,18,.85)}.sa-click-area.sa-click-area6:before{background:rgba(127,0,79,.75);box-shadow:0 0 0 3px rgba(127,0,79,1) inset}.sa-click-area.sa-click-area6:hover::before{background:rgba(127,0,79,.85)}.sa-click-area .sa-click-area:before{background:0 0!important}.sa-click-area:after{height:14px;line-height:14px;margin:-7px 0 0 -28px;width:56px;color:#fff;content:attr(data-click);font-size:14px;font-weight:700;left:50%;line-height:1em;position:absolute;text-align:center;text-indent:0;text-shadow:1px 1px 2px #000;top:50%;z-index:10}';
3103+
var css = '.sa-heat-box-head-2017322{border-bottom:1px solid rgba(0,0,0,.06);cursor:move;height:30px;background:#e1e1e1;color:#999;clear:both}.sa-heat-box-effect-2017314{animation-duration:.5s;animation-fill-mode:both;animation-iteration-count:1;animation-name:sa-heat-box-effect-2017314}@keyframes sa-heat-box-effect-2017314{0%{opacity:.6}to{opacity:1}}.sa-click-area{position:relative}.sa-click-area:before{cursor:pointer;content:"";width:100%;position:absolute;left:0;top:0;bottom:0}.sa-click-area.sa-click-area0:before{background:hsla(60,98%,80%,.75);box-shadow:0 0 0 2px #fefe9b inset}.sa-click-area.sa-click-area0:hover:before,input.sa-click-area.sa-click-area0,textarea.sa-click-area.sa-click-area0{background:hsla(60,98%,80%,.85)}.sa-click-area.sa-click-area1:before{background:rgba(255,236,142,.75);box-shadow:0 0 0 2px #ffec8e inset}.sa-click-area.sa-click-area1:hover:before,input.sa-click-area.sa-click-area1,textarea.sa-click-area.sa-click-area1{background:rgba(255,236,142,.85)}.sa-click-area.sa-click-area2:before{background:rgba(255,188,113,.75);box-shadow:0 0 0 2px #ffbc71 inset}.sa-click-area.sa-click-area2:hover:before,input.sa-click-area.sa-click-area2,textarea.sa-click-area.sa-click-area2{background:rgba(255,188,113,.85)}.sa-click-area.sa-click-area3:before{background:rgba(255,120,82,.75);box-shadow:0 0 0 2px #ff7852 inset}.sa-click-area.sa-click-area3:hover:before,input.sa-click-area.sa-click-area3,textarea.sa-click-area.sa-click-area3{background:rgba(255,120,82,.85)}.sa-click-area.sa-click-area4:before{background:rgba(255,65,90,.75);box-shadow:0 0 0 2px #ff415a inset}.sa-click-area.sa-click-area4:hover:before,input.sa-click-area.sa-click-area4,textarea.sa-click-area.sa-click-area4{background:rgba(255,65,90,.85)}.sa-click-area.sa-click-area5:before{background:rgba(199,0,18,.75);box-shadow:0 0 0 2px #c70012 inset}.sa-click-area.sa-click-area5:hover:before,input.sa-click-area.sa-click-area5,textarea.sa-click-area.sa-click-area5{background:rgba(199,0,18,.85)}.sa-click-area.sa-click-area6:before{background:rgba(127,0,79,.75);box-shadow:0 0 0 3px #7f004f inset}.sa-click-area.sa-click-area6:hover:before,input.sa-click-area.sa-click-area6,textarea.sa-click-area.sa-click-area6{background:rgba(127,0,79,.85)}.sa-click-area .sa-click-area:before{background:0 0!important}.sa-click-area:after{height:14px;line-height:14px;margin:-7px 0 0 -28px;width:56px;color:#fff;content:attr(data-click);font-size:14px;font-weight:700;left:50%;line-height:1em;position:absolute;text-align:center;text-indent:0;text-shadow:1px 1px 2px #000;top:50%;z-index:10}';
30333104

30343105
var style = document.createElement('style');
30353106
style.type = 'text/css';

src/sensorsdata.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,13 +64,22 @@ try{
6464
use_app_track: false
6565

6666
};
67+
var i;
6768
// 合并配置
68-
for (var i in sd.para_default) {
69+
for (i in sd.para_default) {
6970
if (sd.para[i] === void 0) {
7071
sd.para[i] = sd.para_default[i];
7172
}
7273
}
7374
// 优化配置
75+
if(typeof sd.para.server_url === 'object' && sd.para.server_url.length){
76+
for(i = 0; i < sd.para.server_url.length; i++){
77+
if (!/sa\.gif[^\/]*$/.test(sd.para.server_url[i])) {
78+
sd.para.server_url[i] = sd.para.server_url[i].replace(/\/sa$/, '/sa.gif').replace(/(\/sa)(\?[^\/]+)$/, '/sa.gif$2');
79+
}
80+
}
81+
}
82+
7483
if (!/sa\.gif[^\/]*$/.test(sd.para.server_url)) {
7584
sd.para.server_url = sd.para.server_url.replace(/\/sa$/, '/sa.gif').replace(/(\/sa)(\?[^\/]+)$/, '/sa.gif$2');
7685
}

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

vtrack.min.js

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

0 commit comments

Comments
 (0)