jQuery:在新选项卡/窗口中打开链接时,不会调用click处理程序

我注意到当用户点击链接时,例如中间按钮或shift / ctrl +左按钮,不会调用附加到超链接的单击处理程序。

我已经看到了跟踪mousedown事件的解决方案,但我想要的是跟踪链接的确切事件。

有什么建议吗? 谢谢

mousedown / mouseup确实是获得中键交互通知的唯一方法,因此在不干预mouseout事件的情况下检测一个向下的事件或多或少是你能做的最好的事情。 这不是很好。

我不会打扰,因为即使你陷入了这种可能性,也有许多其他的互动你无法接受。 除了中键单击(可能不是所有浏览器/配置中的“在新选项卡中打开”;例如在IE6中,用户将打开滚动模式),用户可能右键单击并“在新的中打开” “窗口”,或将链接拖到地址栏或新选项卡,或其他各种特定于浏览器的操作以执行导航。

如果链接在您的网站上,则在页面加载时跟踪链接,而不是在获取链接的页面上。 如果该链接指向其他网站,则您需要使用重定向url,以便您的网站可以跟踪该url(例如:http: //yoursite.com/redirect.html? redirect = http://artite.com )。

在重定向页面中,您可能会执行以下操作(如果您要使用javascript):

 $(document).ready(function(){ //insert your tracking code here... var redirect = getParameterByName('redirect'); if(redirect != ''){ window.location = redirect; } }); //From http://stackoverflow.com/questions/901115/get-querystring-with-jquery/901144#901144 function getParameterByName( name ){ name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); var regexS = "[\\?&]"+name+"=([^&#]*)"; var regex = new RegExp( regexS ); var results = regex.exec( window.location.href ); if( results == null ) return ""; else return results[1]; } 

你可以结合“event.which”使用’mousedown”mouseup’事件。

例如: http : //jsbin.com/ikahe/edit

怎么做点击劫持正确…或者更确切地说是左边。

http://mislav.uniqpath.com/2011/03/click-hijack/