Javascript ctrl+;使用回调函数时单击“禁用”
我在我的电子商务网页上有一个产品的图片,也是一个链接,每当有人点击图片时,我想使用谷歌分析增强型电子商务工具进行跟踪。为了在我的google analytics报告中获得更准确的数据,我停止链接导航到下一页,直到事件发送完数据 这是链接的html:Javascript ctrl+;使用回调函数时单击“禁用”,javascript,jquery,google-analytics,Javascript,Jquery,Google Analytics,我在我的电子商务网页上有一个产品的图片,也是一个链接,每当有人点击图片时,我想使用谷歌分析增强型电子商务工具进行跟踪。为了在我的google analytics报告中获得更准确的数据,我停止链接导航到下一页,直到事件发送完数据 这是链接的html: <a href="/product_path" onclick="onProductClick();return !ga.loaded;"> <img src="/some_product.jpg" /> </a
<a href="/product_path" onclick="onProductClick();return !ga.loaded;">
<img src="/some_product.jpg" />
</a>
这是使用的javascript:
<script>
function onProductClick() {
...
ga('send', 'event', 'UX', 'click', 'Featured' {
'hitCallback': function() {
document.location = '/product_path'
}
});
}
</script>
函数onProductClick(){
...
ga('send'、'event'、'UX'、'click'、'Featured'{
“hitCallback”:函数(){
document.location='/product_path'
}
});
}
但是,这会导致当我按ctrl键并单击图像时,它不会像往常一样在新选项卡中打开,而是在与我现在相同的选项卡中打开。这是一个功能,我希望它继续工作
有人知道如何恢复该功能吗?您可以使用类似的方法:
var my_event;
document.querySelector("#my_link").addEventListener("click", function(event){
my_event= event;
setTimeout(function(){//simulate your call to ga
var window_target= my_event.ctrlKey ? "_newtab": "_self";
window.open(my_event.target.href, window_target );
},100);
event.preventDefault();
return false;
});
但它不可靠,例如,它不能处理鼠标中键单击
我会让正常的行为,ga脚本发出请求,然后像用户希望的那样打开新页面。事实上,我看不出有什么问题
document.querySelector("#my_link").addEventListener("click", function(){
//ga call here
});
为什么要在这种情况下重定向?没有必要。只需打开选项卡并记录单击。类似于
onclick=“onProductClick();return!ga.loaded&&!KeyboardJS.activeKeys().include('ctrl')”
应该可以完成这项工作:)。我想你的意思是:onclick=“onProductClick();return!ga.loaded | | KeyboardJS.activeKeys()。include('ctrl')”
,对吗?尝试了这个,但我现在有一个问题,产品页面在两个选项卡中都打开了,应该只在新选项卡中打开。还有,中键点击是否也可以?