2013-04-11 94 views
3

我希望我的链接看起来像合法网址,但行为有所不同,如点击事件发生时转到我定义的某个跟踪网址。 当我用鼠标左键单击链接时,我可以用.click()处理程序捕捉它,并将href更改为其他内容。当我点击右键时,它不会被.click()捕获,但我可以使用.mousedown()和.mouseup(),这只是我的问题的部分解决方案。在jQuery链接中检测右键单击的“在新选项卡中打开”?

问题是,我想确保当某个用户右键单击链接时,链接仍然看起来合法,但是当他选择在新选项卡中打开链接时,我会捕获该事件并更改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将在浏览器中显示的角落,我该如何绕过?

+1

你是说你想要的实际链路发送他们不是“合法”呢? – musefan 2013-04-11 08:59:45

+1

*“我希望我的链接看起来像合法网址,但行为不同,就像去我定义的某个跟踪网址”*不要。不要。执行Google在搜索结果页面上的操作:通过链接将您带到重定向到目标的跟踪页面。 (甚至他们所做的有点邪恶,因为当你悬停链接时,你在状态栏中看到的并不是你想要的真实链接,他们会覆盖状态文本。) – 2013-04-11 09:00:48

+0

为什么倒下的票?有些事不清楚吗?没有研究工作?没有必要采取这种情感。 @musefan:他们将被引导到跟踪网址,但链接本身需要看起来像直接到达目标网址。 – test 2013-04-11 10:04:29

回答

0

我用“文本菜单”,它帮助我改变的右击所有网址老鼠。

$('#help').on('click contextmenu', "a", function(event) { 
    $(this).attr('href','my_new_url'); 
    $(this).attr('target', '_blank'); 
}); 

它也负责开新窗口,复制链接等

相关问题