0

可能重复:
如何在 JavaScript 中捕获右键单击事件?

我有链接,单击时会执行一些 javascript 代码。像这样:

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

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

当我执行“右键单击 -> 在新标签页中打开”时,它会将我定向到 'google.com' 而无需调用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 回答