0

重複の可能性:
JavaScript で右クリック イベントをキャプチャするにはどうすればよいですか?

クリックすると JavaScript コードが実行されるリンクがあります。ちょうどこのような:

<script>
        function myFunction(){
            alert("Hello World!");
        }
</script>

<a href="http://google.com" onclick="myFunction()">Click</a>

「右クリック -> 新しいタブで開く」を実行すると、myFunction(). そして、それはまさに私が欲しいものです。

リンク「Ctrl + 左クリック」を押して新しいタブでリンクを開くと、問題が発生します。このようにして実行myFunction()され、google.com にアクセスします。

これを修正する方法はありますか?

4

1 に答える 1

2

チェックインmyFunctionして、修飾キーが押されているかどうかを確認します。

function myFunction(e) {
    // http://www.quirksmode.org/js/events_access.html
    var event = e || window.event;

    // https://developer.mozilla.org/en-US/docs/DOM/MouseEvent
    if (event.ctrlKey || event.metaKey) return;

    alert("Hello World!");
}

注意: この正確なコードは、すべてのブラウザーで機能するとは限りません (これが JavaScript ライブラリの目的です)。

http://jsfiddle.net/mattball/vEHyj

于 2012-10-05T14:39:41.960 に答える