跟踪链接时捕获事件
Catching event when following a link
我正在尝试跟踪外部链接上的点击(不使用"重定向页面")。
当用户关注链接时,我如何捕捉事件,而不管用户是否:
- 左键单击链接
- 右键单击链接并在新窗口中打开它
- 使用键盘激活链接
- 有其他激活链接的方法吗
onClick事件仅适用于第一个。
如果设置href="javascript:fireEventAndFollowLink()"
,用户将无法在新窗口中打开链接(2),因此这不是一个解决方案。
链接可以通过某些方式触发(假设是现代浏览器,请参阅脚注):
- 左键单击
- 对于
<a target="_blank">
或<a target="_new">
,页面将加载到新选项卡中 - 当用户按下CTRL时,页面将加载到新选项卡中
- 当用户按下SHIFT时,页面将加载到新窗口中
- 对于其他
target
值,可以在当前屏幕或另一帧中加载链接
- 对于
- 鼠标中键
- 页面将加载到一个新的选项卡中,而与修改键无关
- 右键单击
如果不是不可能完全实现的话,这种方法非常困难
JavaScript不能用于直接检测上下文菜单中选择了哪个选项。- 当选择"在新的(选项卡,窗口)中打开链接"时,页面将加载到新的选项卡,窗口中
- 如果不选择其中任何一个,则不加载任何内容
- 键盘:
- 上下文菜单(请参见3。)
- 输入-请参阅1
如何捕获这些链接
没有可靠的方法来捕获所有链接事件。
onmouseup
事件可用于检测1、2和3。
可以通过event.button
(或event.which
)属性来跟踪已使用的按钮。在所有非IE浏览器中,0=左,1=中,2=右。在IE中,1=左侧,2=中间,4=右侧onclick
事件可用于捕获1和2。
修改键可以通过event.altKey
和event.shiftKey
属性来检测oncontextmenu
事件可用于捕获3onkeydown
事件可用于捕获4
修改键的行为在任何规范中都没有形式化,因此是特定于浏览器的。至少Firefox(至少3+)和Chrome(全部?)实现了这一关键行为
相关问题-如何拦截链接上的操作(<a>
)?
相关文章:
- 如何调用“;链接_;在onclick事件上使用Javascript
- 链接上的IE10 jquery句柄单击事件不起作用
- 自动遍历所有链接的事件
- 检测“;animationend”;链接动画集的事件
- 谷歌分析跟踪内部链接不正常工作的事件
- 加载超链接页面后如何响应事件
- reactJs redux:如何对用户事件调度操作并将操作与化简器和存储链接
- 在聊天窗口中检测链接单击事件
- 将单击事件附加到按钮或链接上的类,该按钮或链接会触发 AJAX 帖子,然后延迟并继续原始操作
- 取消 iframe 中具有 target=“_parent” 属性的链接事件
- 我的链接按钮的OnClick事件永远不会被触发
- 解析具有target=“”的链接;新的“;并添加onclick事件
- DOM事件链接不起作用
- YUI3-具有相同类的链接的点击事件处理
- 我可以在onclick=return false的链接上触发点击事件吗
- 点击tpl链接时,ExtJS 4.2自定义组件触发事件
- jQuery 选择没有任何 JS 事件链接的链接,以便 PJAX 仅处理链接
- FullCalendar-添加事件链接
- rails中的事件/链接处理
- 为一个事件链接3个jQuery选择器