Skip to content

Commit ac41942

Browse files
author
shengyonggen
committed
增加自动获取weburl
1 parent 193765e commit ac41942

File tree

9 files changed

+158
-42
lines changed

9 files changed

+158
-42
lines changed

README.md

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

33
Sensors Analytics JavaScript SDK
44

5-
完整文档请[点击这里](http://www.sensorsdata.cn/manual/js_sdk.html),如有疑问请联系邮箱 [email protected],着急联系qq=522370351
5+
完整文档请[点击这里](http://www.sensorsdata.cn/manual/js_sdk.html),如有疑问请联系邮箱 [email protected]
66

77
目录说明:
88

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

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/heatmap.js

Lines changed: 43 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8110,7 +8110,13 @@ var heatmap_render = {
81108110
if(!type){
81118111
type = 1;
81128112
}
8113-
href.addQueryString({'sa-request-id':data,'sa-request-type':type});
8113+
var obj = {'sa-request-id':data,'sa-request-type':type};
8114+
/*
8115+
if(sessionStorage && sessionStorage.getItem && sessionStorage.getItem('sensors_heatmap_url')){
8116+
obj['sa-request-url'] = sessionStorage.getItem('sensors_heatmap_url');
8117+
}*/
8118+
8119+
href.addQueryString(obj);
81148120
location.href = href.getUrl();
81158121

81168122
}
@@ -8912,6 +8918,9 @@ var heatmap = {
89128918
var me = this;
89138919
_.bindReady(
89148920
function(){
8921+
8922+
8923+
89158924
if (window && window.parent && window.parent.window && (window !== window.parent.window)) {
89168925
window.parent.window.postMessage({
89178926
method: 'setHeight',
@@ -8932,18 +8941,44 @@ var heatmap = {
89328941
},
89338942
prepare: function(data,type,url){
89348943
var me = this;
8935-
8936-
if(!document.querySelectorAll){
8944+
if(!document.querySelectorAll ){
89378945
alert('请更新到最新版浏览器,建议用chrome或者firefox');
89388946
return false;
89398947
}
8948+
var web_url = sd.para.web_url || null;
8949+
if(_.sessionStorage.isSupport() && sessionStorage.getItem && sessionStorage.getItem('sensors_heatmap_url')){
8950+
web_url = sessionStorage.getItem('sensors_heatmap_url') || null;
8951+
}
8952+
8953+
function hasGetWebUrl(){
8954+
setTimeout(function(){
8955+
heatmap_render.setToolbar(data,type,url);
8956+
},sd.para.heatmap.loadTimeout || 0);
8957+
}
8958+
/*
8959+
window.addEventListener("message", function(data){
8960+
if(data && typeof data.data === 'object' && data.data.web_url){
8961+
web_url = data.data.web_url;
8962+
}
8963+
});
8964+
*/
8965+
8966+
me.sendIframeData();
89408967
//进入渲染模式
89418968
heatmap_render.setCssStyle();
8942-
setTimeout(function(){
8943-
heatmap_render.setToolbar(data,type,url);
8944-
me.sendIframeData();
8945-
},sd.para.heatmap.loadTimeout || 0);
8946-
8969+
8970+
function getWebUrl(){
8971+
if(web_url){
8972+
sd.para.web_url = web_url;
8973+
sessionStorage.setItem('sensors_heatmap_url',web_url);
8974+
hasGetWebUrl();
8975+
}else{
8976+
heatmap_render.showErrorInfo(2,{error:'获取web_url超时'});
8977+
return false;
8978+
}
8979+
}
8980+
getWebUrl();
8981+
89478982
}
89488983
};
89498984

src/sdk.js

Lines changed: 34 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1027,8 +1027,8 @@ _.localStorage = {
10271027
isSupport: function() {
10281028
var supported = true;
10291029
try {
1030-
var key = '__sensorsdatasupport__',
1031-
val = 'testIsSupportStorage';
1030+
var key = '__sensorsdatasupport__';
1031+
var val = 'testIsSupportStorage';
10321032
_.localStorage.set(key, val);
10331033
if (_.localStorage.get(key) !== val) {
10341034
supported = false;
@@ -1042,6 +1042,28 @@ _.localStorage = {
10421042

10431043
};
10441044

1045+
_.sessionStorage = {
1046+
1047+
isSupport:function(){
1048+
var supported = true;
1049+
1050+
var key = '__sensorsdatasupport__';
1051+
var val = 'testIsSupportStorage';
1052+
try{
1053+
if(sessionStorage && sessionStorage.setItem){
1054+
sessionStorage.setItem(key,val);
1055+
sessionStorage.removeItem(key,val);
1056+
supported = true;
1057+
}else{
1058+
supported = false;
1059+
}
1060+
}catch(e){
1061+
supported = false;
1062+
}
1063+
return supported;
1064+
}
1065+
};
1066+
10451067
_.xhr = function(cors) {
10461068
if (cors) {
10471069
var xhr = new XMLHttpRequest();
@@ -3085,8 +3107,9 @@ saEvent.send = function(p, callback) {
30853107

30863108
},
30873109
prepare:function(todo){
3088-
var match = location.search.match(/sa-request-id=([^&]+)/);
3089-
var type = location.search.match(/sa-request-type=([^&]+)/);
3110+
var match = location.search.match(/sa-request-id=([^&#]+)/);
3111+
var type = location.search.match(/sa-request-type=([^&#]+)/);
3112+
var web_url = location.search.match(/sa-request-url=([^&#]+)/);
30903113

30913114
var me = this;
30923115
function isReady(data,type,url){
@@ -3107,10 +3130,14 @@ saEvent.send = function(p, callback) {
31073130
})
31083131

31093132
}
3110-
3133+
// 如果有id,才有可能是首次,首次的时候把web_url存进去
31113134
if(match && match[0] && match[1]){
31123135
sd.is_heatmap_render_mode = true;
3113-
if(typeof window.sessionStorage === 'object' && sessionStorage.setItem){
3136+
if(_.sessionStorage.isSupport()){
3137+
if(web_url && web_url[0] && web_url[1]){
3138+
sessionStorage.setItem('sensors_heatmap_url',decodeURIComponent(web_url[1]));
3139+
}
3140+
31143141
sessionStorage.setItem('sensors_heatmap_id',match[1]);
31153142

31163143
if(type && type[0] && type[1]){
@@ -3129,7 +3156,7 @@ saEvent.send = function(p, callback) {
31293156
}
31303157
}
31313158
isReady(match[1],type);
3132-
} else if(typeof window.sessionStorage === 'object' && sessionStorage.setItem && typeof sessionStorage.getItem('sensors_heatmap_id') === 'string'){
3159+
} else if(_.sessionStorage.isSupport() && typeof sessionStorage.getItem('sensors_heatmap_id') === 'string'){
31333160
sd.is_heatmap_render_mode = true;
31343161
isReady(sessionStorage.getItem('sensors_heatmap_id'),sessionStorage.getItem('sensors_heatmap_type'),location.href);
31353162
}else{

src/sensorsdata.full.amd.js

Lines changed: 34 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1165,8 +1165,8 @@ _.localStorage = {
11651165
isSupport: function() {
11661166
var supported = true;
11671167
try {
1168-
var key = '__sensorsdatasupport__',
1169-
val = 'testIsSupportStorage';
1168+
var key = '__sensorsdatasupport__';
1169+
var val = 'testIsSupportStorage';
11701170
_.localStorage.set(key, val);
11711171
if (_.localStorage.get(key) !== val) {
11721172
supported = false;
@@ -1180,6 +1180,28 @@ _.localStorage = {
11801180

11811181
};
11821182

1183+
_.sessionStorage = {
1184+
1185+
isSupport:function(){
1186+
var supported = true;
1187+
1188+
var key = '__sensorsdatasupport__';
1189+
var val = 'testIsSupportStorage';
1190+
try{
1191+
if(sessionStorage && sessionStorage.setItem){
1192+
sessionStorage.setItem(key,val);
1193+
sessionStorage.removeItem(key,val);
1194+
supported = true;
1195+
}else{
1196+
supported = false;
1197+
}
1198+
}catch(e){
1199+
supported = false;
1200+
}
1201+
return supported;
1202+
}
1203+
};
1204+
11831205
_.xhr = function(cors) {
11841206
if (cors) {
11851207
var xhr = new XMLHttpRequest();
@@ -3217,8 +3239,9 @@ saEvent.send = function(p, callback) {
32173239

32183240
},
32193241
prepare:function(todo){
3220-
var match = location.search.match(/sa-request-id=([^&]+)/);
3221-
var type = location.search.match(/sa-request-type=([^&]+)/);
3242+
var match = location.search.match(/sa-request-id=([^&#]+)/);
3243+
var type = location.search.match(/sa-request-type=([^&#]+)/);
3244+
var web_url = location.search.match(/sa-request-url=([^&#]+)/);
32223245

32233246
var me = this;
32243247
function isReady(data,type,url){
@@ -3239,10 +3262,14 @@ saEvent.send = function(p, callback) {
32393262
})
32403263

32413264
}
3242-
3265+
// 如果有id,才有可能是首次,首次的时候把web_url存进去
32433266
if(match && match[0] && match[1]){
32443267
sd.is_heatmap_render_mode = true;
3245-
if(typeof window.sessionStorage === 'object' && sessionStorage.setItem){
3268+
if(_.sessionStorage.isSupport()){
3269+
if(web_url && web_url[0] && web_url[1]){
3270+
sessionStorage.setItem('sensors_heatmap_url',decodeURIComponent(web_url[1]));
3271+
}
3272+
32463273
sessionStorage.setItem('sensors_heatmap_id',match[1]);
32473274

32483275
if(type && type[0] && type[1]){
@@ -3261,7 +3288,7 @@ saEvent.send = function(p, callback) {
32613288
}
32623289
}
32633290
isReady(match[1],type);
3264-
} else if(typeof window.sessionStorage === 'object' && sessionStorage.setItem && typeof sessionStorage.getItem('sensors_heatmap_id') === 'string'){
3291+
} else if(_.sessionStorage.isSupport() && typeof sessionStorage.getItem('sensors_heatmap_id') === 'string'){
32653292
sd.is_heatmap_render_mode = true;
32663293
isReady(sessionStorage.getItem('sensors_heatmap_id'),sessionStorage.getItem('sensors_heatmap_type'),location.href);
32673294
}else{

src/sensorsdata.full.js

Lines changed: 34 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1162,8 +1162,8 @@ _.localStorage = {
11621162
isSupport: function() {
11631163
var supported = true;
11641164
try {
1165-
var key = '__sensorsdatasupport__',
1166-
val = 'testIsSupportStorage';
1165+
var key = '__sensorsdatasupport__';
1166+
var val = 'testIsSupportStorage';
11671167
_.localStorage.set(key, val);
11681168
if (_.localStorage.get(key) !== val) {
11691169
supported = false;
@@ -1177,6 +1177,28 @@ _.localStorage = {
11771177

11781178
};
11791179

1180+
_.sessionStorage = {
1181+
1182+
isSupport:function(){
1183+
var supported = true;
1184+
1185+
var key = '__sensorsdatasupport__';
1186+
var val = 'testIsSupportStorage';
1187+
try{
1188+
if(sessionStorage && sessionStorage.setItem){
1189+
sessionStorage.setItem(key,val);
1190+
sessionStorage.removeItem(key,val);
1191+
supported = true;
1192+
}else{
1193+
supported = false;
1194+
}
1195+
}catch(e){
1196+
supported = false;
1197+
}
1198+
return supported;
1199+
}
1200+
};
1201+
11801202
_.xhr = function(cors) {
11811203
if (cors) {
11821204
var xhr = new XMLHttpRequest();
@@ -3214,8 +3236,9 @@ saEvent.send = function(p, callback) {
32143236

32153237
},
32163238
prepare:function(todo){
3217-
var match = location.search.match(/sa-request-id=([^&]+)/);
3218-
var type = location.search.match(/sa-request-type=([^&]+)/);
3239+
var match = location.search.match(/sa-request-id=([^&#]+)/);
3240+
var type = location.search.match(/sa-request-type=([^&#]+)/);
3241+
var web_url = location.search.match(/sa-request-url=([^&#]+)/);
32193242

32203243
var me = this;
32213244
function isReady(data,type,url){
@@ -3236,10 +3259,14 @@ saEvent.send = function(p, callback) {
32363259
})
32373260

32383261
}
3239-
3262+
// 如果有id,才有可能是首次,首次的时候把web_url存进去
32403263
if(match && match[0] && match[1]){
32413264
sd.is_heatmap_render_mode = true;
3242-
if(typeof window.sessionStorage === 'object' && sessionStorage.setItem){
3265+
if(_.sessionStorage.isSupport()){
3266+
if(web_url && web_url[0] && web_url[1]){
3267+
sessionStorage.setItem('sensors_heatmap_url',decodeURIComponent(web_url[1]));
3268+
}
3269+
32433270
sessionStorage.setItem('sensors_heatmap_id',match[1]);
32443271

32453272
if(type && type[0] && type[1]){
@@ -3258,7 +3285,7 @@ saEvent.send = function(p, callback) {
32583285
}
32593286
}
32603287
isReady(match[1],type);
3261-
} else if(typeof window.sessionStorage === 'object' && sessionStorage.setItem && typeof sessionStorage.getItem('sensors_heatmap_id') === 'string'){
3288+
} else if(_.sessionStorage.isSupport() && typeof sessionStorage.getItem('sensors_heatmap_id') === 'string'){
32623289
sd.is_heatmap_render_mode = true;
32633290
isReady(sessionStorage.getItem('sensors_heatmap_id'),sessionStorage.getItem('sensors_heatmap_type'),location.href);
32643291
}else{

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

0 commit comments

Comments
 (0)