2013-03-04 87 views
1

我想打开一个弹出窗口,当有人用鼠标右键单击一个区域时。 我使用这个此刻:如果通过mousedown事件打开,弹出式窗口被阻止

$("#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中使用它(有没有与其他浏览器进行测试虽然)在弹出被阻止。我注意到,“点击”事件根本不起作用。

有什么方法可以打开一个弹出窗口时,右键点击某些东西,而不被浏览器阻止?

+3

作为一个用户,我真心希望不会。 – prodigitalson 2013-03-04 20:36:58

+0

为什么你想创建一个弹出窗口,右键点击,可能有点奇怪的用户..它会更有意义的自定义内容菜单不弹出! – 2013-03-04 20:43:02

+1

弹出窗口被阻止是有原因的。用户可以选择是允许还是拒绝弹出窗口,并且您无法控制弹出窗口。 – 2013-03-04 20:43:23

回答

2

不,这是不可能的。

你可以看到right here在Mozilla的中间和鼠标右键点击被阻止传播点击事件。你可以看到here只有click得到“可信”,而mouseupmousedown没有。

Chrome以类似的方式运行,但确实允许鼠标中键传播事件,并且它们是可信的(源自事件的弹出不会被阻止)。然而,他们会打开窗外焦点(你会留在当前页面)

我会建议使用正常点击处理程序上的Shift键检测来代替。