Skip to content

Commit 193765e

Browse files
author
shengyonggen
committed
优化点击图的img等标签刷新后无效的问题
1 parent ee70961 commit 193765e

File tree

8 files changed

+48
-181
lines changed

8 files changed

+48
-181
lines changed

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: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8552,30 +8552,47 @@ var heatmap_render = {
85528552
},
85538553
renderHeatData: function(selector,data,key){
85548554
var dom = _.ry(selector[0]);
8555+
var wrap = null;
85558556
// 优化input不支持伪类的样式
8557+
85568558
var tagName = dom.ele.tagName.toLowerCase();
8557-
if( tagName === 'input' || tagName === 'textarea' || tagName === 'img'){
8559+
// 针对百联的map/area现在是img 以及 input的优化
8560+
if(tagName === 'input' || tagName === 'textarea' || tagName === 'img'){
85588561
var width = $(selector[0]).width();
8559-
dom = dom.wrap('span');
8562+
wrap = dom.wrap('span');
85608563
if(typeof width === 'number'){
8561-
dom.ele.style.width = width;
8564+
wrap.ele.style.width = width;
85628565
}
8563-
dom.ele.style.display = 'inline-block';
8566+
wrap.ele.style.display = 'inline-block';
8567+
8568+
}else{
8569+
wrap = dom;
85648570
}
8565-
this.heatDataElement.push(dom);
8566-
dom.attr('data-heat-place',String(key))
8571+
this.heatDataElement.push(dom);
8572+
wrap.attr('data-heat-place',String(key))
85678573
.addClass('sa-click-area')
85688574
// .attr('title',this.heatDataTitle(data))
85698575
.attr('data-click',data.data_click_percent)
85708576
.addClass('sa-click-area' + this.heatData(data.data_click));
8571-
if(dom.getStyle('display') === 'inline'){
8577+
if(wrap.getStyle('display') === 'inline'){
85728578
selector[0].style.display = 'inline-block';
85738579
}
85748580

85758581
},
85768582
refreshHeatData: function(){
8583+
85778584
_.each(this.heatDataElement,function(ele){
8578-
ele.removeClass('sa-click-area');
8585+
8586+
var tagName = ele.ele.tagName.toLowerCase();
8587+
// 针对百联的map/area现在是img 以及 input的优化
8588+
if( tagName === 'input' || tagName === 'textarea' || tagName === 'img'){
8589+
var parent = ele.parent();
8590+
if(parent && parent.ele.tagName.toLowerCase() === 'span' && parent.ele.className.indexOf('sa-click-area') !== -1){
8591+
$(ele.ele).unwrap();
8592+
}
8593+
}else{
8594+
ele.removeClass('sa-click-area');
8595+
}
85798596
});
85808597
this.heatDataElement = [];
85818598
this.calculateHeatData(this.ajaxHeatData);

src/sdk.js

Lines changed: 5 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1467,8 +1467,12 @@ _.ry.init.prototype = {
14671467
},
14681468
children: function( elem ) {
14691469
return this.siblings( this.ele.firstChild );
1470+
},
1471+
parent: function(){
1472+
var parent = this.ele.parentNode;
1473+
parent = parent && parent.nodeType !== 11 ? parent : null;
1474+
return _.ry(parent);
14701475
}
1471-
14721476
};
14731477

14741478
_.jssdkDebug = function(recevie_prop,has_prop){
@@ -2321,60 +2325,6 @@ saEvent.send = function(p, callback) {
23212325
_referring_host: _.info.pageProp.referrer_host
23222326
});
23232327
},
2324-
allTrack: function(){
2325-
// 避免没有ready
2326-
if(!document || !document.body){
2327-
setTimeout(this.allTrack,1000);
2328-
return false;
2329-
}
2330-
2331-
if(sd.para.heatmap){
2332-
return false;
2333-
}
2334-
2335-
sd.para.heatmap = {};
2336-
heatmap.init();
2337-
return false;
2338-
2339-
2340-
if(sd.allTrack === 'has_init'){
2341-
return false;
2342-
}
2343-
sd.allTrack = 'has_init';
2344-
2345-
var trackAll = {
2346-
2347-
clickEvents: function(e){
2348-
var props = {};
2349-
var target = e.target;
2350-
var tagName = target.tagName.toLowerCase();
2351-
2352-
if(' button a input '.indexOf(' '+ tagName + ' ') !== -1 ){
2353-
2354-
if(tagName === 'input'){
2355-
if(target.getAttribute('type') === 'button' || target.getAttribute('type') === 'submit'){
2356-
props.$element_content = target.value;
2357-
}else{
2358-
return false;
2359-
}
2360-
}
2361-
2362-
_.extend(props, _.getEleInfo({target:target}));
2363-
2364-
if(tagName === 'a' && sd.para.is_trackLink === true){
2365-
_.trackLink({event:e},'$WebClick',props);
2366-
}else{
2367-
sd.track('$WebClick',props);
2368-
}
2369-
}
2370-
2371-
}
2372-
};
2373-
2374-
2375-
_.addEvent(document,'click',function(e){trackAll.clickEvents(e);});
2376-
2377-
},
23782328
trackHeatMap: function(target){
23792329
if((typeof target === 'object') && target.tagName){
23802330
var tagName = target.tagName.toLowerCase();

src/sensorsdata.full.amd.js

Lines changed: 5 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1605,8 +1605,12 @@ _.ry.init.prototype = {
16051605
},
16061606
children: function( elem ) {
16071607
return this.siblings( this.ele.firstChild );
1608+
},
1609+
parent: function(){
1610+
var parent = this.ele.parentNode;
1611+
parent = parent && parent.nodeType !== 11 ? parent : null;
1612+
return _.ry(parent);
16081613
}
1609-
16101614
};
16111615

16121616
_.jssdkDebug = function(recevie_prop,has_prop){
@@ -2453,60 +2457,6 @@ saEvent.send = function(p, callback) {
24532457
_referring_host: _.info.pageProp.referrer_host
24542458
});
24552459
},
2456-
allTrack: function(){
2457-
// 避免没有ready
2458-
if(!document || !document.body){
2459-
setTimeout(this.allTrack,1000);
2460-
return false;
2461-
}
2462-
2463-
if(sd.para.heatmap){
2464-
return false;
2465-
}
2466-
2467-
sd.para.heatmap = {};
2468-
heatmap.init();
2469-
return false;
2470-
2471-
2472-
if(sd.allTrack === 'has_init'){
2473-
return false;
2474-
}
2475-
sd.allTrack = 'has_init';
2476-
2477-
var trackAll = {
2478-
2479-
clickEvents: function(e){
2480-
var props = {};
2481-
var target = e.target;
2482-
var tagName = target.tagName.toLowerCase();
2483-
2484-
if(' button a input '.indexOf(' '+ tagName + ' ') !== -1 ){
2485-
2486-
if(tagName === 'input'){
2487-
if(target.getAttribute('type') === 'button' || target.getAttribute('type') === 'submit'){
2488-
props.$element_content = target.value;
2489-
}else{
2490-
return false;
2491-
}
2492-
}
2493-
2494-
_.extend(props, _.getEleInfo({target:target}));
2495-
2496-
if(tagName === 'a' && sd.para.is_trackLink === true){
2497-
_.trackLink({event:e},'$WebClick',props);
2498-
}else{
2499-
sd.track('$WebClick',props);
2500-
}
2501-
}
2502-
2503-
}
2504-
};
2505-
2506-
2507-
_.addEvent(document,'click',function(e){trackAll.clickEvents(e);});
2508-
2509-
},
25102460
trackHeatMap: function(target){
25112461
if((typeof target === 'object') && target.tagName){
25122462
var tagName = target.tagName.toLowerCase();

src/sensorsdata.full.js

Lines changed: 5 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1602,8 +1602,12 @@ _.ry.init.prototype = {
16021602
},
16031603
children: function( elem ) {
16041604
return this.siblings( this.ele.firstChild );
1605+
},
1606+
parent: function(){
1607+
var parent = this.ele.parentNode;
1608+
parent = parent && parent.nodeType !== 11 ? parent : null;
1609+
return _.ry(parent);
16051610
}
1606-
16071611
};
16081612

16091613
_.jssdkDebug = function(recevie_prop,has_prop){
@@ -2450,60 +2454,6 @@ saEvent.send = function(p, callback) {
24502454
_referring_host: _.info.pageProp.referrer_host
24512455
});
24522456
},
2453-
allTrack: function(){
2454-
// 避免没有ready
2455-
if(!document || !document.body){
2456-
setTimeout(this.allTrack,1000);
2457-
return false;
2458-
}
2459-
2460-
if(sd.para.heatmap){
2461-
return false;
2462-
}
2463-
2464-
sd.para.heatmap = {};
2465-
heatmap.init();
2466-
return false;
2467-
2468-
2469-
if(sd.allTrack === 'has_init'){
2470-
return false;
2471-
}
2472-
sd.allTrack = 'has_init';
2473-
2474-
var trackAll = {
2475-
2476-
clickEvents: function(e){
2477-
var props = {};
2478-
var target = e.target;
2479-
var tagName = target.tagName.toLowerCase();
2480-
2481-
if(' button a input '.indexOf(' '+ tagName + ' ') !== -1 ){
2482-
2483-
if(tagName === 'input'){
2484-
if(target.getAttribute('type') === 'button' || target.getAttribute('type') === 'submit'){
2485-
props.$element_content = target.value;
2486-
}else{
2487-
return false;
2488-
}
2489-
}
2490-
2491-
_.extend(props, _.getEleInfo({target:target}));
2492-
2493-
if(tagName === 'a' && sd.para.is_trackLink === true){
2494-
_.trackLink({event:e},'$WebClick',props);
2495-
}else{
2496-
sd.track('$WebClick',props);
2497-
}
2498-
}
2499-
2500-
}
2501-
};
2502-
2503-
2504-
_.addEvent(document,'click',function(e){trackAll.clickEvents(e);});
2505-
2506-
},
25072457
trackHeatMap: function(target){
25082458
if((typeof target === 'object') && target.tagName){
25092459
var tagName = target.tagName.toLowerCase();

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

0 commit comments

Comments
 (0)