为了账号安全,请及时绑定邮箱和手机立即绑定

如何拦截 a 标签的点击事件

如何拦截 a 标签的点击事件

呼啦一阵风 2019-04-08 11:17:51
有这么一个需求,统计一个a链接的点击次数,这个a链接是在当前页面打开,统计是方式是向后台发一个ajax请求。这时就会有问题,因为点击完链接页面就直接跳转了,导致有些时候会统计不到。有没有方法能够确认ajax请求返回了再跳转页面,不想使用window.location的方法跳转,想以a链接默认的后续跳转处理,因为也有可能a链接是新窗口打开的。
查看完整描述

2 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

半年前遇到过同样情况,这个问题最简单最佳解决方案:
不要用onclick()触发ajax统计,改用mousedown().
解析:
1.onclick()整个过程包含mousedown()和mouseup().
2.a链接跳转是在mouseup()之后才触发.
这样的结果是:ajax会在跳转前触发,虽然说鼠标按下->松开的时间很短,但是现今电脑和浏览器足以完成任务.
                            
查看完整回答
反对 回复 2019-04-08
?
森栏

TA贡献1810条经验 获得超5个赞

考虑个简单的问题:如果是屏幕阅读器,或鼠标出现故障的用户,用Tab+Enter来访问的,甚至于搜索引擎索引,都不会触发onClick。
所以在这个环节截获点击统计,恐怕不是个好想法。为什么不在后续打开的页面里统计点击次数呢?
如果一定要这么做,然后还不想用window.location跳转,也许就只能试试同步ajax请求能不能做到了。
                            
查看完整回答
反对 回复 2019-04-08
  • 2 回答
  • 0 关注
  • 456 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信