我想要跟踪用户在我的页面上的点击。但我有点困惑。看看这段代码:
<a href="http://example.com" onClick=”_gaq.push(['_trackEvent', 'External Link', 'Twitter Link', 'Follow Us - Words']);”>Follow Us</a>^如果用户get在谷歌analitics曲目之前被重定向到http://example.com -那该怎么办?这个例子有竞态条件,我说对了吗?
发布于 2014-07-15 04:36:57
没有竞争条件。单击处理程序在页面导航开始之前被调用并完全执行。该单击处理程序创建一个ajax请求,该请求的响应无关紧要。ajax请求在启动页面导航之前启动。
不要被方法名所蒙蔽。According to google
这个函数被命名为push,这样在分析完全加载之前,就可以使用一个数组来代替_gaq。在加载Analytics时,命令将推送/排队到阵列上。当分析完成加载时,它用_gaq对象替换数组,并执行所有排队的命令。随后对_gaq.push的调用将解析到此函数,该函数在推送命令时执行命令。
虽然最初,.push()只是将命令推入数组,但一旦加载了Analytics,这些命令就会立即执行。
发布于 2014-07-15 04:11:52
您可以这样做:
使用jQuery:
$('a').on('click', function(e){
e.preventDefault();
var $el = $(this);
_gaq.push(['_trackEvent', 'External Link', 'Twitter Link', 'Follow Us - Words']);
setTimeout(function(){
window.location.href = $el.attr('href');
}, 100);
});不使用jQuery:
document.getElementById('someIdOfLink').addEventListener('click', function(){
return false;
var $el = this;
_gaq.push(['_trackEvent', 'External Link', 'Twitter Link', 'Follow Us - Words']);
setTimeout(function(){
window.location.href = $el.getAttribute('href');
}, 100);
});希望能对您有所帮助!
https://stackoverflow.com/questions/24744863
复制相似问题