我希望我的链接看起来像合法的URL,但在单击事件发生时会有不同的行为,例如转到我定义的跟踪URL。当我使用鼠标左键单击链接时,可以使用.click()处理程序捕获它并将href更改为其他内容。当我右键单击时,.click()无法捕获它,但是我可以使用.mousedown()和.mouseup(),这只是解决我的问题的一部分。
问题在于,我想确保当某个用户右键单击链接时,链接仍然看起来合法,但当他选择在新标签页中打开链接时,我会捕获该事件并更改href。最终,当实际单击事件发生在链接上时,href将被更改回原始状态。他们实际访问的URL执行某些操作并将其重定向到真正的URL,但这发生得非常快。因此,此功能的目的是欺骗用户并跟踪他们的点击。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将显示在浏览器角落中,我该如何绕过这个问题?