【问题标题】:.click() event when 'Open in new tab/window'“在新选项卡/窗口中打开”时的 .click() 事件
【发布时间】:2012-05-27 12:58:50
【问题描述】:

当我在<a> 标记上使用.click() 时,该事件仅在我单击该元素时有效。否则,如果用户执行右键单击 > 在新窗口中打开或在新选项卡中打开,则不会触发 click() 事件。

所以,我的问题是...当用户右键单击 > 在新标签/窗口中打开时,如何触发 click() 事件?

这是 HTML:

<a href="url">Click Me</a>

这是Js:

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

【问题讨论】:

  • 嗯.. 那只是右键,不是open in new window/tab
  • 我认为不可能。我看到的唯一方法是捕获鼠标右键单击并手动触发click 事件。
  • 我认为这不可能。我认为原因之一是您不希望网站能够跟踪您正在访问的外部链接。
  • 好吧,我想我只需要使用它..

标签: javascript jquery


【解决方案1】:

您可以尝试这段代码,但请记住更改 UI 不是一个好主意:

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;
        }
    });

【讨论】:

  • 这看起来像是将所有右键点击视为“在新标签页中打开”事件。
猜你喜欢
  • 2013-11-01
  • 1970-01-01
  • 2014-02-02
  • 2017-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多