|
1564 | 1564 | } else { |
1565 | 1565 | var ontype = 'on' + type; |
1566 | 1566 | var old_handler = element[ontype]; |
1567 | | - element[ontype] = makeHandler(element, handler, old_handler); |
| 1567 | + element[ontype] = makeHandler(element, handler, old_handler, type); |
1568 | 1568 | } |
1569 | 1569 | }; |
1570 | 1570 |
|
1571 | | - function makeHandler(element, new_handler, old_handlers) { |
| 1571 | + function makeHandler(element, new_handler, old_handlers, type) { |
1572 | 1572 | var handler = function(event) { |
1573 | 1573 | event = event || fixEvent(window.event); |
1574 | 1574 | if (!event) { |
|
1582 | 1582 | old_result = old_handlers(event); |
1583 | 1583 | } |
1584 | 1584 | new_result = new_handler.call(element, event); |
1585 | | - if (false === old_result || false === new_result) { |
1586 | | - ret = false; |
| 1585 | + if (type !== 'beforeunload') { |
| 1586 | + if (false === old_result || false === new_result) { |
| 1587 | + ret = false; |
| 1588 | + } |
| 1589 | + return ret; |
1587 | 1590 | } |
1588 | | - return ret; |
1589 | 1591 | }; |
1590 | 1592 | return handler; |
1591 | 1593 | } |
|
2946 | 2948 | Sys.chrome = Number(s[1].split('.')[0]); |
2947 | 2949 | } else if ((s = ua.match(/version\/([\d.]+).*safari/))) { |
2948 | 2950 | Sys.safari = Number(s[1].match(/^\d*.\d*/)); |
| 2951 | + } else if ((s = ua.match(/trident\/([\d.]+)/))) { |
| 2952 | + Sys.ie = 11; |
2949 | 2953 | } |
2950 | 2954 | return Sys; |
2951 | 2955 | }; |
|
3095 | 3099 |
|
3096 | 3100 | _.listenPageState = function(obj) { |
3097 | 3101 | var visibilystore = { |
3098 | | - visibleHandle: _.isFunction(obj.visible) ? obj.visible : function() {}, |
| 3102 | + visibleHandler: _.isFunction(obj.visible) ? obj.visible : function() {}, |
3099 | 3103 | hiddenHandler: _.isFunction(obj.hidden) ? obj.hidden : function() {}, |
3100 | 3104 | visibilityChange: null, |
3101 | 3105 | hidden: null, |
|
3120 | 3124 | }, |
3121 | 3125 | listen: function() { |
3122 | 3126 | if (!this.isSupport()) { |
3123 | | - if (document.addEventListener) { |
3124 | | - window.addEventListener('focus', this.visibleHandle, 1); |
3125 | | - window.addEventListener('blur', this.hiddenHandler, 1); |
3126 | | - } else { |
3127 | | - document.attachEvent('onfocusin', this.visibleHandle); |
3128 | | - document.attachEvent('onfocusout', this.hiddenHandler); |
3129 | | - } |
| 3127 | + _.addEvent(window, 'focus', this.visibleHandler) |
| 3128 | + _.addEvent(window, 'blur', this.hiddenHandler) |
3130 | 3129 | } else { |
3131 | 3130 | var _this = this; |
3132 | | - document.addEventListener( |
3133 | | - _this.visibilityChange, |
| 3131 | + _.addEvent(document, this.visibilityChange, |
3134 | 3132 | function() { |
3135 | 3133 | if (!document[_this.hidden]) { |
3136 | | - _this.visibleHandle(); |
| 3134 | + _this.visibleHandler(); |
3137 | 3135 | } else { |
3138 | 3136 | _this.hiddenHandler(); |
3139 | 3137 | } |
3140 | 3138 | }, |
3141 | 3139 | 1 |
3142 | | - ); |
| 3140 | + ) |
3143 | 3141 | } |
3144 | 3142 | } |
3145 | 3143 | }; |
|
3465 | 3463 |
|
3466 | 3464 | sd.setInitVar = function() { |
3467 | 3465 | sd._t = sd._t || 1 * new Date(); |
3468 | | - sd.lib_version = '1.18.13'; |
| 3466 | + sd.lib_version = '1.18.14'; |
3469 | 3467 | sd.is_first_visitor = false; |
3470 | 3468 | sd.source_channel_standard = 'utm_source utm_medium utm_campaign utm_content utm_term'; |
3471 | 3469 | }; |
|
4421 | 4419 | source: 'sa-web-sdk', |
4422 | 4420 | type: 'v-is-vtrack', |
4423 | 4421 | data: { |
4424 | | - sdkversion: '1.18.13' |
| 4422 | + sdkversion: '1.18.14' |
4425 | 4423 | } |
4426 | 4424 | }, |
4427 | 4425 | '*' |
|
5171 | 5169 | }; |
5172 | 5170 |
|
5173 | 5171 | saEvent.send = function(p, callback) { |
| 5172 | + var data = sd.kit.buildData(p); |
| 5173 | + sd.kit.sendData(data, callback); |
| 5174 | + }; |
| 5175 | + |
| 5176 | + saEvent.debugPath = function(data, callback) { |
| 5177 | + var _data = data; |
| 5178 | + var url = ''; |
| 5179 | + if (sd.para.debug_mode_url.indexOf('?') !== -1) { |
| 5180 | + url = sd.para.debug_mode_url + '&data=' + encodeURIComponent(_.base64Encode(data)); |
| 5181 | + } else { |
| 5182 | + url = sd.para.debug_mode_url + '?data=' + encodeURIComponent(_.base64Encode(data)); |
| 5183 | + } |
| 5184 | + |
| 5185 | + _.ajax({ |
| 5186 | + url: url, |
| 5187 | + type: 'GET', |
| 5188 | + cors: true, |
| 5189 | + header: { |
| 5190 | + 'Dry-Run': String(sd.para.debug_mode_upload) |
| 5191 | + }, |
| 5192 | + success: function(data) { |
| 5193 | + _.isEmptyObject(data) === true ? alert('debug数据发送成功' + _data) : alert('debug失败 错误原因' + JSON.stringify(data)); |
| 5194 | + } |
| 5195 | + }); |
| 5196 | + };; |
| 5197 | + |
| 5198 | + var kit = sd.kit = {}; |
| 5199 | + |
| 5200 | + kit.buildData = function(p) { |
5174 | 5201 | var data = { |
5175 | | - distinct_id: store.getDistinctId(), |
| 5202 | + distinct_id: sd.store.getDistinctId(), |
5176 | 5203 | lib: { |
5177 | 5204 | $lib: 'js', |
5178 | 5205 | $lib_method: 'code', |
5179 | 5206 | $lib_version: String(sd.lib_version) |
5180 | 5207 | }, |
5181 | 5208 | properties: {} |
5182 | 5209 | }; |
| 5210 | + |
5183 | 5211 | if (_.isObject(p) && _.isObject(p.properties) && !_.isEmptyObject(p.properties)) { |
5184 | 5212 | if (p.properties.$lib_detail) { |
5185 | 5213 | data.lib.$lib_detail = p.properties.$lib_detail; |
|
5197 | 5225 | _.extend(data.properties, p.properties); |
5198 | 5226 | } |
5199 | 5227 |
|
| 5228 | + |
5200 | 5229 | if (!p.type || p.type.slice(0, 7) !== 'profile') { |
5201 | 5230 |
|
5202 | 5231 | data.properties = _.extend({}, _.info.properties(), store.getProps(), store.getSessionProps(), _.info.currentProps, data.properties); |
|
5248 | 5277 | _.searchObjString(data); |
5249 | 5278 | _.searchZZAppStyle(data); |
5250 | 5279 |
|
5251 | | - var data_config = _.searchConfigData(data.properties); |
5252 | | - |
5253 | 5280 | saNewUser.checkIsAddSign(data); |
5254 | 5281 | saNewUser.checkIsFirstTime(data); |
5255 | 5282 |
|
5256 | 5283 | sd.addReferrerHost(data); |
5257 | 5284 | sd.addPropsHook(data); |
| 5285 | + return data; |
| 5286 | + } |
5258 | 5287 |
|
| 5288 | + kit.sendData = function(data, callback) { |
| 5289 | + var data_config = _.searchConfigData(data.properties); |
5259 | 5290 | if (sd.para.debug_mode === true) { |
5260 | 5291 | sd.log(data); |
5261 | 5292 | this.debugPath(JSON.stringify(data), callback); |
|
5264 | 5295 | } |
5265 | 5296 | }; |
5266 | 5297 |
|
5267 | | - saEvent.debugPath = function(data, callback) { |
5268 | | - var _data = data; |
5269 | | - var url = ''; |
5270 | | - if (sd.para.debug_mode_url.indexOf('?') !== -1) { |
5271 | | - url = sd.para.debug_mode_url + '&data=' + encodeURIComponent(_.base64Encode(data)); |
5272 | | - } else { |
5273 | | - url = sd.para.debug_mode_url + '?data=' + encodeURIComponent(_.base64Encode(data)); |
5274 | | - } |
5275 | | - |
5276 | | - _.ajax({ |
5277 | | - url: url, |
5278 | | - type: 'GET', |
5279 | | - cors: true, |
5280 | | - header: { |
5281 | | - 'Dry-Run': String(sd.para.debug_mode_upload) |
5282 | | - }, |
5283 | | - success: function(data) { |
5284 | | - _.isEmptyObject(data) === true ? alert('debug数据发送成功' + _data) : alert('debug失败 错误原因' + JSON.stringify(data)); |
5285 | | - } |
5286 | | - }); |
5287 | | - };; |
5288 | | - |
5289 | 5298 |
|
5290 | 5299 | var store = (sd.store = { |
5291 | 5300 | requests: [], |
|
6470 | 6479 | para.$title = document.title; |
6471 | 6480 | para.$url_path = location.pathname; |
6472 | 6481 | para.event_duration = Math.min(sd.para.heatmap.scroll_event_duration, parseInt(delay_time) / 1000); |
| 6482 | + para.event_duration = para.event_duration < 0 ? 0 : para.event_duration; |
6473 | 6483 | sd.track('$WebStay', para); |
6474 | 6484 | } |
6475 | 6485 | this.current_time = current_time; |
|
0 commit comments