Skip to content

Instantly share code, notes, and snippets.

@fergusKe
Created January 3, 2020 05:58
Show Gist options
  • Save fergusKe/8306dcc63fd4b896b7cdf1b39e6f05c3 to your computer and use it in GitHub Desktop.
Save fergusKe/8306dcc63fd4b896b7cdf1b39e6f05c3 to your computer and use it in GitHub Desktop.
<script>
(function(emmit, listening){
listening.forEach(function(obj){
if(obj.type == 'delay'){
$(obj.ele).click(function(){
setTimeout(function(){emmit(obj.action(this),obj.label(this));}, 500);
});
} else if(obj.type == 'body'){
$('body').on('click', obj.ele, function(){emmit(obj.action(this),obj.label(this));});
} else if(obj.type == 'change'){
$(obj.ele).change(function(){emmit(obj.action(this),obj.label(this));});
} else if(obj.type == 'datahandler'){
$(obj.ele).click(function(data, handler){emmit(obj.action(data),obj.label(data));});
} else if(obj.type == 'keypress'){
$(obj.ele).keypress(function(data, handler){emmit(obj.action(data),obj.label(data));});
} else {
$(obj.ele).click(function(){emmit(obj.action(this),obj.label(this));});
}
});
})(function (action, label){
dataLayer.push({
eventCategory: '圖靈-桌機版首頁-個人金融',
eventAction: action,
eventLabel: label,
event: 'cusevent'});
},[{ele: '#lnk_homebanner_PCButtonLink',
action:function(ele){
return '輪播BN按鈕點擊';
},
label: function(ele){
return $.map($(ele).prev().find('h2'), function(obj){return $(obj).text()}).join('-')+'-'+$(ele).text().trim();
}
},
{ele: '.card a',
action:function(data){
if($(data.target)[0].nodeName == "SPAN"){
return '推薦服務項目'+$(data.target)[0].innerText+'點擊'
} else {
return '推薦服務項目圖片點擊'
}
},
label: function(data){
var td_currentTarget = $(data)[0].currentTarget;
var td_cardTitle = $(td_currentTarget).find('.cardTitle').text().trim();
var td_cardSubTitle = $(td_currentTarget).find('.cardSubTitle').text().trim();
return td_cardTitle+'-'+td_cardSubTitle
},
type: 'datahandler'
},
{ele: '#source_currency',
action:function(ele){
return '匯率試算-左方幣別切換點擊'
},
label: function(ele){
return $(ele).find('option:selected').text()
},
type: 'change'
},
{ele: '#target_currency',
action:function(ele){
return '匯率試算-右方幣別切換點擊'
},
label: function(ele){
return $(ele).find('option:selected').text()
},
type: 'change'
},
{ele: '#changeCurrency',
action:function(ele){
return '匯率試算-匯率轉換點擊'
},
label: function(ele){
return '匯率轉換'
},
},
{ele: '#lnk_HomeButtonLink',
action:function(ele){
return '匯率試算-更多外幣匯率點擊'
},
label: function(ele){
return '更多外幣匯率'
},
},
{ele: '#source_currency_amount, #target_currency_amount',
action:function(ele){
return '匯率試算-匯率輸入點擊'
},
label: function(ele){
return '左-'+$('#source_currency').find('option:selected').text()+'-'+$('#source_currency_amount').val()+'-右-'+$('#target_currency').find('option:selected').text()+'-'+$('#target_currency_amount').val()
},
type: 'change'
},
{ele: '.announcementNews a',
action:function(ele){
return '公告訊息-訊息點擊'
},
label: function(ele){
return $(ele).find('p').text().trim()
},
},
{ele: '#layout_0_main_2_ReferenceLink',
action:function(ele){
return '公告訊息-更多訊息點擊'
},
label: function(ele){
return '更多訊息'
},
},
]
);
</script>
<script>
function isScrolledIntoView(elem) {
var docViewTop = $(window).scrollTop();
var docViewBottom = docViewTop + $(window).height();
var elemTop = $(elem).offset().top;
var elemBottom = elemTop + $(elem).height();
return elemBottom <= docViewBottom; // 阿勇版
// return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop)); // 原版
// return (elemTop <= docViewBottom) && (elemBottom >= docViewTop) // 阿泰版
}
var dectec_scroll_ele = [
{elem:'.cubinvest-l-mainKv', action: "輪播 BN",label: $('.cubinvest-l-mainKv').find('h2').text()},
{elem:'.card:eq(0)', action: "推薦服務項目",label: $('.card:eq(0)').find('.cardTitle').text().trim()},
{elem:'.card:eq(1)', action: "推薦服務項目",label: $('.card:eq(1)').find('.cardTitle').text().trim()},
{elem:'.card:eq(2)', action: "推薦服務項目",label: $('.card:eq(2)').find('.cardTitle').text().trim()},
{elem:'#exchange-list-wrap', action: "即時匯率",label: '即時匯率'},
{elem:'#exchange-calc-wrap', action: "匯率試算",label: '匯率試算'},
{elem:'section >div > div.panel-body', action: "公告訊息",label: '公告訊息'},
{elem:'.f-footerContactUs', action: "關於國泰相關資訊",label: '關於國泰相關資訊'},
{elem:'.f-recommandLink', action: "國泰相關企業資訊",label: '國泰相關企業資訊'},
];
$(window).scroll(function(){
for(idx in dectec_scroll_ele){
if(isScrolledIntoView(dectec_scroll_ele[idx].elem)){
dataLayer.push({
'event':'cusevent9',
'eventCategory':'圖靈-桌機版首頁-個人金融觀看區塊',
'eventAction':dectec_scroll_ele[idx].action,
'eventLabel':dectec_scroll_ele[idx].label
});
// 送過刪除
dectec_scroll_ele.splice(idx,1);
}
}
});
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment