单击链接时执行异步AJAX调用,然后跟随该链接
Executing an asynchronous AJAX call when a link is clicked, and then following the link
我们的页面上有一个链接,我们想跟踪它的使用情况。目前,它并不是一个真正的链接。它是一个<div>
标签,带有一个包含目的地的数据属性和绑定到它的点击处理程序
点击后,我们将数据发送到Google Analytics,然后在短暂延迟后用window.location = url
触发页面加载,这样我们就可以确保数据已经通过。
这种方法很有效,但它有一个主要缺陷:可点击元素实际上不是一个链接,其行为只是部分链接。例如,我不能用鼠标滚轮点击它并在单独的选项卡中打开链接(正如你所期望的),或者我不能右键点击它并获得与链接相关的菜单(因为它不是链接)。
有没有一种方法可以使用<a>
标签来获取真实链接的行为,拦截点击事件,与谷歌分析交互,然后在一小段延迟后正常关注链接(以确保数据通过),而不必重定向自己,也不必失去功能?
您可以使用event.preventDefault()
来防止链接被跟踪:
$('a').click(function(e){
e.preventDefault();
var href = this.href;
setTimeout(function(){
window.location = href;
}, 2000)
});
使用新的HTML5标准,难道不能将<div>
封装在<a>
标签中吗?然后你可以做:
内联:
<a href="yourawesomewebsite.com" id="gaEvent" target="_blank" onclick="_gaq.push(['_set', 'hitCallback', function(){window.location = this.href;}]); _gaq.push(['_trackEvent','category','action','label']);">
<div id ="blah"></div>
</a>
jQuery:
$('gaEvent').on('click', function(){
_gaq.push(['_set', 'hitCallback', function(){
window.location = url; // you'll still have to define this somewhere
}]);
_gaq.push(['_trackEvent','category','action','label']);
});
我完全引用了这个SO帖子-点击表单提交后在谷歌分析中跟踪事件
相关文章:
- 如何利用多链接延迟检查并显示ping结果,然后使用JavaScript选择最快的URL
- 如何点击标题中的链接,然后返回HTML、Javascript和CSS
- 需要一个链接才能转到某个页面,然后快速返回到当前页面
- 将单击事件附加到按钮或链接上的类,该按钮或链接会触发 AJAX 帖子,然后延迟并继续原始操作
- 附加链接已禁用,然后启用它
- 单击链接时执行异步AJAX调用,然后跟随该链接
- 从页面上点击的链接中删除数据,然后移动到下一页&在CasperJS中重复
- 单击链接滚动到元素,然后向元素添加类
- 如何在第一次点击时突出显示链接;并在第二次单击时跟随它,除非在其他地方单击,然后重新初始化未高亮显示的状态
- 如何在单击链接时启动函数,然后从该链接传递类
- 将 Div 类附加到超链接类 — 然后单击时克隆并附加超链接到容器
- 禁用链接,直到所有动画停止,然后再次启用它们
- 使用 JS 捕获链接 ID,然后定向到链接
- window.打开一个新页面,然后单击新页面中的链接 - JavaScript
- 创建一个超链接(或按钮),用于执行 python 脚本,然后在脚本完成时重定向
- 延迟链接 - 然后在上一个调用完成但出现错误时调用成功回调
- 按键触发 的 CSS 更改,在新选项卡中打开链接,然后回滚到以前的 CSS 状态
- 如何再次单击时将链接的颜色从黑色更改为红色,然后再更改回黑色
- 如果按“链接”然后按钮是白色而不是灰色,如何进行主动导航,这是我尝试 jsfiddle.net/egjg14fr/ 的代
- 导演.js和涡轮链接 - 更改窗口哈希并使用然后返回