Skip to content

Commit 12479e0

Browse files
author
shengyonggen
committed
修复domain取值异常等问题
1 parent a059a7b commit 12479e0

File tree

7 files changed

+102
-42
lines changed

7 files changed

+102
-42
lines changed

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.8.7",
3+
"version": "1.8.8",
44
"description": "official sensorsdata javascript sdk",
55
"main": "sensorsdata.min.js",
66
"scripts": {

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: 46 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1059,7 +1059,7 @@ _.ajax = function(para) {
10591059
_.url = (function() {
10601060

10611061
function _t() {
1062-
return new RegExp(/(.*?)\.?([^\.]*?)\.?(com|net|org|biz|ws|in|me|co\.uk|co|org\.uk|ltd\.uk|plc\.uk|me\.uk|edu|mil|br\.com|cn\.com|eu\.com|hu\.com|no\.com|qc\.com|sa\.com|se\.com|se\.net|us\.com|uy\.com|ac|co\.ac|gv\.ac|or\.ac|ac\.ac|af|am|as|at|ac\.at|co\.at|gv\.at|or\.at|asn\.au|com\.au|edu\.au|org\.au|net\.au|id\.au|be|ac\.be|adm\.br|adv\.br|am\.br|arq\.br|art\.br|bio\.br|cng\.br|cnt\.br|com\.br|ecn\.br|eng\.br|esp\.br|etc\.br|eti\.br|fm\.br|fot\.br|fst\.br|g12\.br|gov\.br|ind\.br|inf\.br|jor\.br|lel\.br|med\.br|mil\.br|net\.br|nom\.br|ntr\.br|odo\.br|org\.br|ppg\.br|pro\.br|psc\.br|psi\.br|rec\.br|slg\.br|tmp\.br|tur\.br|tv\.br|vet\.br|zlg\.br|br|ab\.ca|bc\.ca|mb\.ca|nb\.ca|nf\.ca|ns\.ca|nt\.ca|on\.ca|pe\.ca|qc\.ca|sk\.ca|yk\.ca|ca|cc|ac\.cn|com\.cn|edu\.cn|gov\.cn|org\.cn|bj\.cn|sh\.cn|tj\.cn|cq\.cn|he\.cn|nm\.cn|ln\.cn|jl\.cn|hl\.cn|js\.cn|zj\.cn|ah\.cn|gd\.cn|gx\.cn|hi\.cn|sc\.cn|gz\.cn|yn\.cn|xz\.cn|sn\.cn|gs\.cn|qh\.cn|nx\.cn|xj\.cn|tw\.cn|hk\.cn|mo\.cn|cn|cx|cz|de|dk|fo|com\.ec|tm\.fr|com\.fr|asso\.fr|presse\.fr|fr|gf|gs|co\.il|net\.il|ac\.il|k12\.il|gov\.il|muni\.il|ac\.in|co\.in|org\.in|ernet\.in|gov\.in|net\.in|res\.in|is|it|ac\.jp|co\.jp|go\.jp|or\.jp|ne\.jp|ac\.kr|co\.kr|go\.kr|ne\.kr|nm\.kr|or\.kr|li|lt|lu|asso\.mc|tm\.mc|com\.mm|org\.mm|net\.mm|edu\.mm|gov\.mm|ms|nl|no|nu|pl|ro|org\.ro|store\.ro|tm\.ro|firm\.ro|www\.ro|arts\.ro|rec\.ro|info\.ro|nom\.ro|nt\.ro|se|si|com\.sg|org\.sg|net\.sg|gov\.sg|sk|st|tf|ac\.th|co\.th|go\.th|mi\.th|net\.th|or\.th|tm|to|com\.tr|edu\.tr|gov\.tr|k12\.tr|net\.tr|org\.tr|com\.tw|org\.tw|net\.tw|ac\.uk|uk\.com|uk\.net|gb\.com|gb\.net|vg|sh|kz|ch|info|ua|gov|name|pro|ie|hk|com\.hk|org\.hk|net\.hk|edu\.hk|us|tk|cd|by|ad|lv|eu\.lv|bz|es|jp|cl|ag|mobi|eu|co\.nz|org\.nz|net\.nz|maori\.nz|iwi\.nz|io|la|md|sc|sg|vc|tw|travel|my|se|tv|pt|com\.pt|edu\.pt|asia|fi|com\.ve|net\.ve|fi|org\.ve|web\.ve|info\.ve|co\.ve|tel|im|gr|ru|net\.ru|org\.ru|hr|com\.hr|ly|xyz)$/);
1062+
return new RegExp(/(.*?)\.?([^\.]*?)\.(com|net|org|biz|ws|in|me|co\.uk|co|org\.uk|ltd\.uk|plc\.uk|me\.uk|edu|mil|br\.com|cn\.com|eu\.com|hu\.com|no\.com|qc\.com|sa\.com|se\.com|se\.net|us\.com|uy\.com|ac|co\.ac|gv\.ac|or\.ac|ac\.ac|af|am|as|at|ac\.at|co\.at|gv\.at|or\.at|asn\.au|com\.au|edu\.au|org\.au|net\.au|id\.au|be|ac\.be|adm\.br|adv\.br|am\.br|arq\.br|art\.br|bio\.br|cng\.br|cnt\.br|com\.br|ecn\.br|eng\.br|esp\.br|etc\.br|eti\.br|fm\.br|fot\.br|fst\.br|g12\.br|gov\.br|ind\.br|inf\.br|jor\.br|lel\.br|med\.br|mil\.br|net\.br|nom\.br|ntr\.br|odo\.br|org\.br|ppg\.br|pro\.br|psc\.br|psi\.br|rec\.br|slg\.br|tmp\.br|tur\.br|tv\.br|vet\.br|zlg\.br|br|ab\.ca|bc\.ca|mb\.ca|nb\.ca|nf\.ca|ns\.ca|nt\.ca|on\.ca|pe\.ca|qc\.ca|sk\.ca|yk\.ca|ca|cc|ac\.cn|com\.cn|edu\.cn|gov\.cn|org\.cn|bj\.cn|sh\.cn|tj\.cn|cq\.cn|he\.cn|nm\.cn|ln\.cn|jl\.cn|hl\.cn|js\.cn|zj\.cn|ah\.cn|gd\.cn|gx\.cn|hi\.cn|sc\.cn|gz\.cn|yn\.cn|xz\.cn|sn\.cn|gs\.cn|qh\.cn|nx\.cn|xj\.cn|tw\.cn|hk\.cn|mo\.cn|cn|cx|cz|de|dk|fo|com\.ec|tm\.fr|com\.fr|asso\.fr|presse\.fr|fr|gf|gs|co\.il|net\.il|ac\.il|k12\.il|gov\.il|muni\.il|ac\.in|co\.in|org\.in|ernet\.in|gov\.in|net\.in|res\.in|is|it|ac\.jp|co\.jp|go\.jp|or\.jp|ne\.jp|ac\.kr|co\.kr|go\.kr|ne\.kr|nm\.kr|or\.kr|li|lt|lu|asso\.mc|tm\.mc|com\.mm|org\.mm|net\.mm|edu\.mm|gov\.mm|ms|nl|no|nu|pl|ro|org\.ro|store\.ro|tm\.ro|firm\.ro|www\.ro|arts\.ro|rec\.ro|info\.ro|nom\.ro|nt\.ro|se|si|com\.sg|org\.sg|net\.sg|gov\.sg|sk|st|tf|ac\.th|co\.th|go\.th|mi\.th|net\.th|or\.th|tm|to|com\.tr|edu\.tr|gov\.tr|k12\.tr|net\.tr|org\.tr|com\.tw|org\.tw|net\.tw|ac\.uk|uk\.com|uk\.net|gb\.com|gb\.net|vg|sh|kz|ch|info|ua|gov|name|pro|ie|hk|com\.hk|org\.hk|net\.hk|edu\.hk|us|tk|cd|by|ad|lv|eu\.lv|bz|es|jp|cl|ag|mobi|eu|co\.nz|org\.nz|net\.nz|maori\.nz|iwi\.nz|io|la|md|sc|sg|vc|tw|travel|my|se|tv|pt|com\.pt|edu\.pt|asia|fi|com\.ve|net\.ve|fi|org\.ve|web\.ve|info\.ve|co\.ve|tel|im|gr|ru|net\.ru|org\.ru|hr|com\.hr|ly|xyz)$/);
10631063
}
10641064

10651065
function _d(s) {
@@ -1339,6 +1339,19 @@ _.ry.init.prototype = {
13391339
}
13401340
};
13411341

1342+
_.jssdkDebug = function(recevie_prop,has_prop){
1343+
if (sd.para.is_debug) {
1344+
var cookie = store.getCookieName();
1345+
var match = document.cookie.match(new RegExp(cookie + '[^;]+'));
1346+
if(match && match[0] ){
1347+
cookie = match[0];
1348+
}else{
1349+
cookie = '';
1350+
}
1351+
recevie_prop._jssdk_debug_info = '(' + cookie + ')' + navigator.userAgent;
1352+
}
1353+
};
1354+
13421355
_.querySelectorAll = function(val){
13431356
if(typeof val !== 'string'){
13441357
logger.info('错误',val);
@@ -1355,7 +1368,7 @@ _.querySelectorAll = function(val){
13551368
_.getReferrer = function(referrer){
13561369
var referrer = referrer || document.referrer;
13571370
if(typeof referrer !== 'string'){
1358-
return '取值异常';
1371+
return '取值异常(referrer异常)(' + String(referrer) + ')';
13591372
}
13601373
if (referrer.indexOf("https://www.baidu.com/") === 0) {
13611374
referrer = referrer.split('?')[0];
@@ -1379,10 +1392,10 @@ _.getKeywordFromReferrer = function(){
13791392
}
13801393
return '未取到值';
13811394
}else{
1382-
return '未取到值';
1395+
return '未取到值(非http的url)';
13831396
}
13841397
}else{
1385-
return '取值异常';
1398+
return '取值异常(referrer异常)(' + String(document.referrer) + ')';
13861399
}
13871400
};
13881401

@@ -1678,16 +1691,7 @@ var saNewUser = {
16781691
var referrer_domain = _.info.pageProp.referrer_domain;
16791692
// 判断最近一次,如果前向地址跟自己域名一致,且cookie中取不到值,认为有异常
16801693
// 最近一次站外前向地址,如果域名不一致,就register为latest
1681-
if(url_domain === referrer_domain){
1682-
if(!store.getProps() || !('$latest_referrer' in store.getProps())){
1683-
sd.register({
1684-
$latest_referrer: '取值异常',
1685-
$latest_referrer_host: '取值异常',
1686-
$latest_traffic_source_type: '取值异常',
1687-
$latest_search_keyword: '取值异常'
1688-
});
1689-
}
1690-
} else {
1694+
if(url_domain !== referrer_domain){
16911695
sd.register({
16921696
$latest_traffic_source_type:_.getSourceFromReferrer(),
16931697
$latest_referrer: _.info.pageProp.referrer,
@@ -1864,7 +1868,24 @@ saEvent.send = function(p, callback) {
18641868
if (!p.type || p.type.slice(0, 7) !== 'profile') {
18651869
// 传入的属性 > 当前页面的属性 > session的属性 > cookie的属性 > 预定义属性
18661870
data.properties = _.extend({}, _.info.properties(), store.getProps(), store.getSessionProps(), _.info.currentProps, data.properties);
1871+
if(!_.isString(data.properties.$latest_referrer)){
1872+
data.properties.$latest_referrer = '取值异常';
1873+
_.jssdk_debug(data.properties,store.getProps());
1874+
}
1875+
if(!_.isString(data.properties.$latest_referrer_host)){
1876+
data.properties.$latest_referrer_host = '取值异常';
1877+
}
1878+
if(!_.isString(data.properties.$latest_search_keyword)){
1879+
data.properties.$latest_search_keyword = '取值异常';
1880+
}
1881+
if(!_.isString(data.properties.$latest_traffic_source_type)){
1882+
data.properties.$latest_traffic_source_type = '取值异常';
1883+
}
1884+
18671885
}
1886+
1887+
1888+
18681889
// 如果$time是传入的就用,否则使用服务端时间
18691890
if (data.properties.$time && _.isDate(data.properties.$time)) {
18701891
data.time = data.properties.$time * 1;
@@ -1923,7 +1944,7 @@ saEvent.send = function(p, callback) {
19231944
_sessionState: {},
19241945
_state: {},
19251946
getProps: function() {
1926-
return this._state.props;
1947+
return this._state.props || {};
19271948
},
19281949
getSessionProps: function() {
19291950
return this._sessionState;
@@ -2081,6 +2102,9 @@ saEvent.send = function(p, callback) {
20812102

20822103

20832104
var commonWays = {
2105+
isReady:function(callback){
2106+
callback();
2107+
},
20842108
// 获取谷歌标准参数
20852109
getUtm: function() {
20862110
return _.info.campaignParams();
@@ -2262,7 +2286,7 @@ saEvent.send = function(p, callback) {
22622286
$url: location.href,
22632287
$url_path: location.pathname,
22642288
$title: document.title
2265-
}, $utms,para),callback
2289+
},$utms,para),callback
22662290
);
22672291

22682292
}
@@ -2323,6 +2347,7 @@ saEvent.send = function(p, callback) {
23232347
return false;
23242348
}
23252349
function linkFunc(e){
2350+
e.stopPropagation();
23262351
e.preventDefault(); // 阻止默认跳转
23272352
var hasCalled = false;
23282353
function track_a_click(){
@@ -2345,7 +2370,11 @@ saEvent.send = function(p, callback) {
23452370
};
23462371

23472372
sd.trackLink = function(link,event_name,event_prop){
2348-
_.trackLink({ele:link},event_name,event_prop);
2373+
if(typeof link === 'object' && link.tagName){
2374+
_.trackLink({ele:link},event_name,event_prop);
2375+
}else if(typeof link === 'object' && link.target && link.event){
2376+
_.trackLink(link,event_name,event_prop);
2377+
}
23492378
};
23502379
// 跟踪链接
23512380
sd.trackLinks = function(link,event_name,event_prop){

src/sensorsdata.full.js

Lines changed: 48 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ if(typeof JSON!=='object'){JSON={}}(function(){'use strict';var rx_one=/^[\],:{}
5151
// send_error_event: true,
5252
cross_subdomain: true,
5353
show_log: true,
54+
is_debug: false,
5455
debug_mode: false,
5556
debug_mode_upload: false,
5657

@@ -122,7 +123,7 @@ var ObjProto = Object.prototype;
122123
var slice = ArrayProto.slice;
123124
var toString = ObjProto.toString;
124125
var hasOwnProperty = ObjProto.hasOwnProperty;
125-
var LIB_VERSION = '1.8.7';
126+
var LIB_VERSION = '1.8.8';
126127

127128
sd.lib_version = LIB_VERSION;
128129

@@ -1177,7 +1178,7 @@ _.ajax = function(para) {
11771178
_.url = (function() {
11781179

11791180
function _t() {
1180-
return new RegExp(/(.*?)\.?([^\.]*?)\.?(com|net|org|biz|ws|in|me|co\.uk|co|org\.uk|ltd\.uk|plc\.uk|me\.uk|edu|mil|br\.com|cn\.com|eu\.com|hu\.com|no\.com|qc\.com|sa\.com|se\.com|se\.net|us\.com|uy\.com|ac|co\.ac|gv\.ac|or\.ac|ac\.ac|af|am|as|at|ac\.at|co\.at|gv\.at|or\.at|asn\.au|com\.au|edu\.au|org\.au|net\.au|id\.au|be|ac\.be|adm\.br|adv\.br|am\.br|arq\.br|art\.br|bio\.br|cng\.br|cnt\.br|com\.br|ecn\.br|eng\.br|esp\.br|etc\.br|eti\.br|fm\.br|fot\.br|fst\.br|g12\.br|gov\.br|ind\.br|inf\.br|jor\.br|lel\.br|med\.br|mil\.br|net\.br|nom\.br|ntr\.br|odo\.br|org\.br|ppg\.br|pro\.br|psc\.br|psi\.br|rec\.br|slg\.br|tmp\.br|tur\.br|tv\.br|vet\.br|zlg\.br|br|ab\.ca|bc\.ca|mb\.ca|nb\.ca|nf\.ca|ns\.ca|nt\.ca|on\.ca|pe\.ca|qc\.ca|sk\.ca|yk\.ca|ca|cc|ac\.cn|com\.cn|edu\.cn|gov\.cn|org\.cn|bj\.cn|sh\.cn|tj\.cn|cq\.cn|he\.cn|nm\.cn|ln\.cn|jl\.cn|hl\.cn|js\.cn|zj\.cn|ah\.cn|gd\.cn|gx\.cn|hi\.cn|sc\.cn|gz\.cn|yn\.cn|xz\.cn|sn\.cn|gs\.cn|qh\.cn|nx\.cn|xj\.cn|tw\.cn|hk\.cn|mo\.cn|cn|cx|cz|de|dk|fo|com\.ec|tm\.fr|com\.fr|asso\.fr|presse\.fr|fr|gf|gs|co\.il|net\.il|ac\.il|k12\.il|gov\.il|muni\.il|ac\.in|co\.in|org\.in|ernet\.in|gov\.in|net\.in|res\.in|is|it|ac\.jp|co\.jp|go\.jp|or\.jp|ne\.jp|ac\.kr|co\.kr|go\.kr|ne\.kr|nm\.kr|or\.kr|li|lt|lu|asso\.mc|tm\.mc|com\.mm|org\.mm|net\.mm|edu\.mm|gov\.mm|ms|nl|no|nu|pl|ro|org\.ro|store\.ro|tm\.ro|firm\.ro|www\.ro|arts\.ro|rec\.ro|info\.ro|nom\.ro|nt\.ro|se|si|com\.sg|org\.sg|net\.sg|gov\.sg|sk|st|tf|ac\.th|co\.th|go\.th|mi\.th|net\.th|or\.th|tm|to|com\.tr|edu\.tr|gov\.tr|k12\.tr|net\.tr|org\.tr|com\.tw|org\.tw|net\.tw|ac\.uk|uk\.com|uk\.net|gb\.com|gb\.net|vg|sh|kz|ch|info|ua|gov|name|pro|ie|hk|com\.hk|org\.hk|net\.hk|edu\.hk|us|tk|cd|by|ad|lv|eu\.lv|bz|es|jp|cl|ag|mobi|eu|co\.nz|org\.nz|net\.nz|maori\.nz|iwi\.nz|io|la|md|sc|sg|vc|tw|travel|my|se|tv|pt|com\.pt|edu\.pt|asia|fi|com\.ve|net\.ve|fi|org\.ve|web\.ve|info\.ve|co\.ve|tel|im|gr|ru|net\.ru|org\.ru|hr|com\.hr|ly|xyz)$/);
1181+
return new RegExp(/(.*?)\.?([^\.]*?)\.(com|net|org|biz|ws|in|me|co\.uk|co|org\.uk|ltd\.uk|plc\.uk|me\.uk|edu|mil|br\.com|cn\.com|eu\.com|hu\.com|no\.com|qc\.com|sa\.com|se\.com|se\.net|us\.com|uy\.com|ac|co\.ac|gv\.ac|or\.ac|ac\.ac|af|am|as|at|ac\.at|co\.at|gv\.at|or\.at|asn\.au|com\.au|edu\.au|org\.au|net\.au|id\.au|be|ac\.be|adm\.br|adv\.br|am\.br|arq\.br|art\.br|bio\.br|cng\.br|cnt\.br|com\.br|ecn\.br|eng\.br|esp\.br|etc\.br|eti\.br|fm\.br|fot\.br|fst\.br|g12\.br|gov\.br|ind\.br|inf\.br|jor\.br|lel\.br|med\.br|mil\.br|net\.br|nom\.br|ntr\.br|odo\.br|org\.br|ppg\.br|pro\.br|psc\.br|psi\.br|rec\.br|slg\.br|tmp\.br|tur\.br|tv\.br|vet\.br|zlg\.br|br|ab\.ca|bc\.ca|mb\.ca|nb\.ca|nf\.ca|ns\.ca|nt\.ca|on\.ca|pe\.ca|qc\.ca|sk\.ca|yk\.ca|ca|cc|ac\.cn|com\.cn|edu\.cn|gov\.cn|org\.cn|bj\.cn|sh\.cn|tj\.cn|cq\.cn|he\.cn|nm\.cn|ln\.cn|jl\.cn|hl\.cn|js\.cn|zj\.cn|ah\.cn|gd\.cn|gx\.cn|hi\.cn|sc\.cn|gz\.cn|yn\.cn|xz\.cn|sn\.cn|gs\.cn|qh\.cn|nx\.cn|xj\.cn|tw\.cn|hk\.cn|mo\.cn|cn|cx|cz|de|dk|fo|com\.ec|tm\.fr|com\.fr|asso\.fr|presse\.fr|fr|gf|gs|co\.il|net\.il|ac\.il|k12\.il|gov\.il|muni\.il|ac\.in|co\.in|org\.in|ernet\.in|gov\.in|net\.in|res\.in|is|it|ac\.jp|co\.jp|go\.jp|or\.jp|ne\.jp|ac\.kr|co\.kr|go\.kr|ne\.kr|nm\.kr|or\.kr|li|lt|lu|asso\.mc|tm\.mc|com\.mm|org\.mm|net\.mm|edu\.mm|gov\.mm|ms|nl|no|nu|pl|ro|org\.ro|store\.ro|tm\.ro|firm\.ro|www\.ro|arts\.ro|rec\.ro|info\.ro|nom\.ro|nt\.ro|se|si|com\.sg|org\.sg|net\.sg|gov\.sg|sk|st|tf|ac\.th|co\.th|go\.th|mi\.th|net\.th|or\.th|tm|to|com\.tr|edu\.tr|gov\.tr|k12\.tr|net\.tr|org\.tr|com\.tw|org\.tw|net\.tw|ac\.uk|uk\.com|uk\.net|gb\.com|gb\.net|vg|sh|kz|ch|info|ua|gov|name|pro|ie|hk|com\.hk|org\.hk|net\.hk|edu\.hk|us|tk|cd|by|ad|lv|eu\.lv|bz|es|jp|cl|ag|mobi|eu|co\.nz|org\.nz|net\.nz|maori\.nz|iwi\.nz|io|la|md|sc|sg|vc|tw|travel|my|se|tv|pt|com\.pt|edu\.pt|asia|fi|com\.ve|net\.ve|fi|org\.ve|web\.ve|info\.ve|co\.ve|tel|im|gr|ru|net\.ru|org\.ru|hr|com\.hr|ly|xyz)$/);
11811182
}
11821183

11831184
function _d(s) {
@@ -1457,6 +1458,19 @@ _.ry.init.prototype = {
14571458
}
14581459
};
14591460

1461+
_.jssdkDebug = function(recevie_prop,has_prop){
1462+
if (sd.para.is_debug) {
1463+
var cookie = store.getCookieName();
1464+
var match = document.cookie.match(new RegExp(cookie + '[^;]+'));
1465+
if(match && match[0] ){
1466+
cookie = match[0];
1467+
}else{
1468+
cookie = '';
1469+
}
1470+
recevie_prop._jssdk_debug_info = '(' + cookie + ')' + navigator.userAgent;
1471+
}
1472+
};
1473+
14601474
_.querySelectorAll = function(val){
14611475
if(typeof val !== 'string'){
14621476
logger.info('错误',val);
@@ -1473,7 +1487,7 @@ _.querySelectorAll = function(val){
14731487
_.getReferrer = function(referrer){
14741488
var referrer = referrer || document.referrer;
14751489
if(typeof referrer !== 'string'){
1476-
return '取值异常';
1490+
return '取值异常(referrer异常)(' + String(referrer) + ')';
14771491
}
14781492
if (referrer.indexOf("https://www.baidu.com/") === 0) {
14791493
referrer = referrer.split('?')[0];
@@ -1497,10 +1511,10 @@ _.getKeywordFromReferrer = function(){
14971511
}
14981512
return '未取到值';
14991513
}else{
1500-
return '未取到值';
1514+
return '未取到值(非http的url)';
15011515
}
15021516
}else{
1503-
return '取值异常';
1517+
return '取值异常(referrer异常)(' + String(document.referrer) + ')';
15041518
}
15051519
};
15061520

@@ -1796,16 +1810,7 @@ var saNewUser = {
17961810
var referrer_domain = _.info.pageProp.referrer_domain;
17971811
// 判断最近一次,如果前向地址跟自己域名一致,且cookie中取不到值,认为有异常
17981812
// 最近一次站外前向地址,如果域名不一致,就register为latest
1799-
if(url_domain === referrer_domain){
1800-
if(!store.getProps() || !('$latest_referrer' in store.getProps())){
1801-
sd.register({
1802-
$latest_referrer: '取值异常',
1803-
$latest_referrer_host: '取值异常',
1804-
$latest_traffic_source_type: '取值异常',
1805-
$latest_search_keyword: '取值异常'
1806-
});
1807-
}
1808-
} else {
1813+
if(url_domain !== referrer_domain){
18091814
sd.register({
18101815
$latest_traffic_source_type:_.getSourceFromReferrer(),
18111816
$latest_referrer: _.info.pageProp.referrer,
@@ -1982,7 +1987,24 @@ saEvent.send = function(p, callback) {
19821987
if (!p.type || p.type.slice(0, 7) !== 'profile') {
19831988
// 传入的属性 > 当前页面的属性 > session的属性 > cookie的属性 > 预定义属性
19841989
data.properties = _.extend({}, _.info.properties(), store.getProps(), store.getSessionProps(), _.info.currentProps, data.properties);
1990+
if(!_.isString(data.properties.$latest_referrer)){
1991+
data.properties.$latest_referrer = '取值异常';
1992+
_.jssdk_debug(data.properties,store.getProps());
1993+
}
1994+
if(!_.isString(data.properties.$latest_referrer_host)){
1995+
data.properties.$latest_referrer_host = '取值异常';
1996+
}
1997+
if(!_.isString(data.properties.$latest_search_keyword)){
1998+
data.properties.$latest_search_keyword = '取值异常';
1999+
}
2000+
if(!_.isString(data.properties.$latest_traffic_source_type)){
2001+
data.properties.$latest_traffic_source_type = '取值异常';
2002+
}
2003+
19852004
}
2005+
2006+
2007+
19862008
// 如果$time是传入的就用,否则使用服务端时间
19872009
if (data.properties.$time && _.isDate(data.properties.$time)) {
19882010
data.time = data.properties.$time * 1;
@@ -2035,7 +2057,7 @@ saEvent.send = function(p, callback) {
20352057
_sessionState: {},
20362058
_state: {},
20372059
getProps: function() {
2038-
return this._state.props;
2060+
return this._state.props || {};
20392061
},
20402062
getSessionProps: function() {
20412063
return this._sessionState;
@@ -2193,6 +2215,9 @@ saEvent.send = function(p, callback) {
21932215

21942216

21952217
var commonWays = {
2218+
isReady:function(callback){
2219+
callback();
2220+
},
21962221
// 获取谷歌标准参数
21972222
getUtm: function() {
21982223
return _.info.campaignParams();
@@ -2374,7 +2399,7 @@ saEvent.send = function(p, callback) {
23742399
$url: location.href,
23752400
$url_path: location.pathname,
23762401
$title: document.title
2377-
}, $utms,para),callback
2402+
},$utms,para),callback
23782403
);
23792404

23802405
}
@@ -2435,6 +2460,7 @@ saEvent.send = function(p, callback) {
24352460
return false;
24362461
}
24372462
function linkFunc(e){
2463+
e.stopPropagation();
24382464
e.preventDefault(); // 阻止默认跳转
24392465
var hasCalled = false;
24402466
function track_a_click(){
@@ -2457,7 +2483,11 @@ saEvent.send = function(p, callback) {
24572483
};
24582484

24592485
sd.trackLink = function(link,event_name,event_prop){
2460-
_.trackLink({ele:link},event_name,event_prop);
2486+
if(typeof link === 'object' && link.tagName){
2487+
_.trackLink({ele:link},event_name,event_prop);
2488+
}else if(typeof link === 'object' && link.target && link.event){
2489+
_.trackLink(link,event_name,event_prop);
2490+
}
24612491
};
24622492
// 跟踪链接
24632493
sd.trackLinks = function(link,event_name,event_prop){

src/sensorsdata.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ try{
5656
// send_error_event: true,
5757
cross_subdomain: true,
5858
show_log: true,
59+
is_debug: false,
5960
debug_mode: false,
6061
debug_mode_upload: false,
6162

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

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)