我希望我的链接看起来像合法的 url,但行为不同,比如在点击事件发生时转到我定义的一些跟踪 url。当我用鼠标左键单击链接时,我可以用 .click() 处理程序捕获它并将 href 更改为其他内容。当我右键单击时,它不会被 .click() 捕获,但我可以使用 .mousedown() 和 .mouseup(),这只是我问题的部分解决方案。
问题是,我想确保当某些用户右键单击链接时,链接看起来仍然合法,但是当他选择在新选项卡中打开链接时,我会捕获该事件并更改 href。最后,当链接上发生实际的点击事件时,href 会变回原来的。他们实际去的网址,做了一些事情并将他们重定向到真正的网址,但它发生得非常快。所以这个功能的目标是欺骗用户并跟踪他们的点击。Facebook 做到了,但他们如何处理正确的点击和“在新标签中打开”?
好的,我想没有一些代码就无法到达任何地方。我现在有一些代码:
link = $(selectorName);
var original_link = link.attr("href");
link.click(function(){
link.attr("href", "/track_and_redirect");
}).mousedown(function(event) {
switch (event.which) {
case 3:
//alert('Right mouse button pressed');
link.attr("href", "/track_and_redirect");
break;
default:
}
}).mouseleave(function(){
link.attr("href", original_link);
});
目前,当您右键单击链接时,新的 url 将显示在浏览器角落,我该如何绕过?