使用“ctrl + click”检测新选项卡的打开

时间:2012-10-05 14:36:22

标签: javascript tabs click

  

可能重复:
  How can I capture the right-click event in JavaScript?

我有链接,点击后,执行一些JavaScript代码。就像这样:

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

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

当我执行“右键单击 - &gt;在新标签页中打开”时,它会将我指向“google.com”,而不会调用myFunction()。而这正是我想要的。

当我通过按“Ctrl +左键单击”链接打开新标签中的链接时,会出现问题。这样,它会执行myFunction(),然后转到google.com。

有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分: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!");
}

N.B。这个确切的代码可能无法在所有浏览器中运行(这就是JavaScript库的用途)。

http://jsfiddle.net/mattball/vEHyj