检测右击';s";“在新选项卡中打开”;关于jQuery中的链接?
我希望我的链接看起来像合法的url,但当点击事件发生时,行为会有所不同,比如转到我定义的某个跟踪url。 当我用鼠标左键单击链接时,我可以用.click()处理程序捕捉它,并将href更改为其他内容。当我右键单击时,它不会被.click()捕获,但我可以使用.mousedown()和.mouseup(),这只是我问题的部分解决方案 问题是,我想确保当一些用户右键单击链接时,链接看起来仍然合法,但当他选择在新选项卡中打开链接时,我会捕捉该事件并更改href。最后,当链接上发生实际的单击事件时,href将更改回原来的状态。他们实际去的url做了一些事情,并将他们重定向到真实的url,但它发生得非常快。因此,该功能的目标是愚弄用户并跟踪他们的点击。Facebook做到了,但他们如何处理右键点击和“在新标签中打开” 好吧,如果没有代码我想什么都做不到。。 我现在有一些代码:检测右击';s";“在新选项卡中打开”;关于jQuery中的链接?,jquery,events,mouse,Jquery,Events,Mouse,我希望我的链接看起来像合法的url,但当点击事件发生时,行为会有所不同,比如转到我定义的某个跟踪url。 当我用鼠标左键单击链接时,我可以用.click()处理程序捕捉它,并将href更改为其他内容。当我右键单击时,它不会被.click()捕获,但我可以使用.mousedown()和.mouseup(),这只是我问题的部分解决方案 问题是,我想确保当一些用户右键单击链接时,链接看起来仍然合法,但当他选择在新选项卡中打开链接时,我会捕捉该事件并更改href。最后,当链接上发生实际的单击事件时,hr
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将显示在浏览器的一角,我如何绕过它?您不能这样做,或者您可以为您的url创建右键单击事件:) 我使用了“上下文菜单”,它帮助我在鼠标右键单击时更改所有url
$('#help').on('click contextmenu', "a", function(event) {
$(this).attr('href','my_new_url');
$(this).attr('target', '_blank');
});
它还负责在新窗口中打开、复制链接等
$(".links").contextmenu(function(event){
// your logic to change the href here
$(this).attr('href', '...');
// don't forget to attach event to recover your old link back if you need it
attachMouseDown($(this));
});
function attachMouseDown($el){
$el.mousedown(function(event){
// recover your links
$el.attr('href', '...');
$el.unbind('mousedown'); // this is so you don't run this event when you don't need to
});
}
我刚刚在这篇帖子上回答了一个类似的问题
请检查一下
这是我在你的情况下要做的
你是说你想发送给他们的实际链接不是“合法”的吗?“我希望我的链接看起来像合法的url,但行为不同,比如转到我定义的某个跟踪url“不”。别这样。做谷歌在搜索结果页面上做的事情:让链接将你带到一个重定向到目标的跟踪页面。(甚至他们所做的也有点邪恶,因为当你悬停链接时,你在状态栏中看到的不是你要访问的真正链接,而是覆盖了状态文本。)为什么投票被否决?有什么不清楚的吗?没有研究工作?没必要情绪化地接受这个@穆塞凡:它们将被定向到跟踪url,但链接本身需要看起来像是直接指向目标url。事实上,我检查过谷歌,如果你搜索某个东西并将鼠标悬停在链接上,你会看到目标url,尝试右击它,但什么都不做,再次将链接悬停,url就会改变。因此,在右键单击之后,他们不会将其更改回原始状态。这就是我现在所拥有的,但这不是理想的解决方案。@IndrekR:FWIW,我同意你关于反对票的看法。向下投票不是因为不同意某人的意图。但人就是人。:-)请不要发布仅链接其他堆栈交换问题的答案。取而代之的是,在这里包括答案的基本部分,并根据这个具体问题定制答案。