2013-03-04 52 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鍵檢測來代替。

相關問題