如果通过mousedown事件打开,则会阻止弹出窗口

时间:2013-03-04 20:35:33

标签: javascript jquery popup window.open right-click

当有人用鼠标右键单击某个区域时,我想打开一个弹出窗口。 我现在正在使用它:

$("#popup").bind('mousedown', function(e) {
    var w;
    if(e.which==3) {
        w=window.open('link','_blank','options');
    } else {
        return false;
    }
    if(w!=null){
        w.focus();
    }
    event.preventDefault();
});

当它与firefox一起使用时(虽然没有经过其他浏览器的测试),弹出窗口被阻止了。我注意到,通过“点击”事件,它根本不起作用。

有没有办法在没有被浏览器阻止的情况下右键点击某个东西时打开一个弹出窗口?

1 个答案:

答案 0 :(得分:4)

不,这是不可能的。

您可以看到right here在Mozilla中间和右键的鼠标按钮点击会阻止传播点击事件。您可以看到hereclick获得'信任'且mouseupmousedown没有。{/ p>

Chrome以类似的方式运行,但允许鼠标中键传播click个事件,并且它们是受信任的(源自事件的弹出窗口不会被阻止)。然而,他们将打开失焦的窗户(您将留在当前页面)

我建议在普通的点击处理程序上使用Shift键检测。