通过Firefox中的中间点击在新选项卡中打开自定义URL

时间:2013-01-08 01:22:05

标签: javascript events firefox mouseclick-event

所以,目前我有一个脚本拦截任何鼠标点击标签,修改传出链接,并在途中发送用户:

$("a[href*='" + someDomain + "']").bind('click keypress', function(event) {
    event.preventDefault();
    var link = this.href;
    var newLink = link + params;
    var button = event.button;
    if(button && button == 0)) {
        window.location = newLink;
    } else if(button && button === 1) {
        window.open(newLink, '_blank');
    }
});

此代码将确定它是左键单击还是中键单击,并重定向当前页面,或相应地在新窗口/选项卡中打开。

据我所知,代码在Chrome / IE中运行良好。但是,在最新版本的Firefox中,只有左键单击才有效。

对于中间点击,事件未注册。所以,我的第一个想法是调查必须触发的其他事件。我能找到的唯一一个是mousedown / mouseup(点击是这些的组合)。

使用mousedown或mouseup,然后让我在Firefox中正确注册中间点击事件。但是,问题就变成了Firefox将拒绝从不是CLICK事件的结果的javascript代码打开任何新窗口。

那么....任何线索,如果这实际上是可能的?我宁愿不让用户必须允许弹出窗口,或者重新映射他们的中间点击功能以在当前窗口中打开。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

  

但是,在某些浏览器中,无法禁用鼠标右键和鼠标中键的默认操作,或者只能通过更改浏览器设置来禁用。对浏览器设置的此类更改通常会影响通过浏览器查看的所有页面,通常无法通过Javascript完成。由于很少有用户愿意这样做,这几乎意味着这些鼠标事件无法从Javascript中使用。

来自http://www.unixpapa.com/js/mouse.html