单击事件 .click() 在“在新标签页/窗口中打开”时的应用

9
当我在<a>标签上使用.click()时,只有当我点击该元素时事件才会起作用。否则,如果用户右键单击 > 在新窗口或新选项卡中打开,则不会触发click()事件。
所以,我的问题是...当用户右键单击 > 在新标签页/窗口中打开时,如何触发click()事件?
以下是HTML代码:
<a href="url">Click Me</a>

这里是Js代码:

$("a").click(function(){
  alert('You clicked me!');
});

嗯...那只是右键单击,而不是“在新窗口/标签页中打开”。 - Control Freak
1
我认为这是不可能的。我唯一能想到的方法是捕获鼠标右键单击事件并手动触发“click”事件。 - VisioN
我不认为这是可能的。我想其中一个原因是您不希望网站能够跟踪您正在访问的外部链接。 - gigadot
好的,我想我猜我只能使用那个了。 - Control Freak
1个回答

3
你可以尝试这段代码,但要记住更改用户界面不是一个好主意:
var addEvent = (document.addEventListener) ?
    function(target,event,fn){
        if(target) return target.addEventListener(event,fn,false);
    }:
    function(target,event,fn){
        if(target) return target.attachEvent(('on' + event),fn);
    },
allLinks = document.links || document.getElementsByTagName('a');
for(var i=0;i<allLinks.length;i++)
    addEvent(allLinks[i],'mouseup',function(e){
        var e = e  || event;
        if(e.which===3){
            alert('Open in new tab/window');
            e.preventDefault();
            return false;
        }
    });

4
这似乎把所有的右键点击都视为“在新标签页中打开”的事件。 - dlsso

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接