4

誰かがマウスの右ボタンで領域をクリックしたときにポップアップウィンドウを開きたい。私は現在これを使用しています:

$("#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で使用すると(他のブラウザではテストされていませんが)、ポップアップがブロックされます。「クリック」イベントではまったく機能しないことに気づきました。

ブラウザによってブロックされることなく何かを右クリックしたときにポップアップウィンドウを開く方法はありますか?

4

1 に答える 1

5

いいえ、これは不可能です。

ここで、Mozillaでは、マウスの中ボタンと右ボタンのクリックがクリックイベントの伝播を妨げられていることがわかります。そして、あなたはここclickで「信頼される」だけでmouseupあり、mousedownそうではないことを見ることができます。

Chromeも同様に機能しますが、マウスの中ボタンでclickイベントを伝播でき、信頼されます(イベントから発生したポップアップはブロックされません)。ただし、フォーカスのないウィンドウが開きます(現在のページにとどまります)

代わりに、通常のクリックハンドラーでShiftキー検出を使用することをお勧めします。

于 2015-02-11T13:35:18.620 に答える