我想要做的是记录给定网页上的所有用户活动,所以我socket.io
用来将页面上注册的事件发送到服务器,如下所示:
$(document).on('click.mynamespace', function(event){
var elem = event.target;
socket.emit('my-message', { 'element' : elem };
}
我面临的问题是当目标元素是这种链接时<a href="#" onclick="someFunctionThatRedirects()">My link</a>
。socket.emit
在正确执行语句之前调用任何函数并卸载页面(断开我的套接字) 。
我想让它尽可能通用,因为它将作为一个插件工作,并希望它适应任何我无法控制的环境。
那么,有没有办法“劫持”所有点击事件,先用我的自定义函数发送它们,然后继续“正常”执行,不管它可能是什么?
编辑
似乎只有 FF(在 上测试14.0.1
)导致socket.emit
事件无法完成。Chrome21.0.x
似乎正在工作,但不确定这是否是“偶然”。
编辑 2
该函数someFunctionThatRedirects
实际上以这种方式重定向window.location.ref = clickedurl