检测用户是否要在新窗口或选项卡中打开链接(Mac和Windows)

时间:2014-07-12 17:44:42

标签: jquery browser onclick

我有一个链接,为了优化页面响应/流量,我使用javascript click处理程序处理其click事件。在click,我只加载页面的某些部分。但链接的URL是正确的,在独立选项卡中打开它会正确打开页面。

但是,当用户按下链接上的CMD-点击(以打开新标签中的链接)时,click处理程序将运行,并且页面在新选项卡中打开 NOT 。基本上我禁用了CMD-Click(在新选项卡中打开)功能。如何在代码中检测到这一点,以使CMD-Click按预期工作。 (在Windows中,CMD由Ctrl替换。)?

$(".link").on("click", function(event) {

    if (/* TODO: how to detect if the user CMD/Ctrl-clicked the link? */) {
        return true;
    }

    // ... load only necessary things for normal clicks
})

我是否必须编写OS /浏览器特定代码来解决上面的TODO? (我使用jQuery)

1 个答案:

答案 0 :(得分:8)

检查event的{​​{1}},ctrlKeyshiftKey媒体资源。它们告诉您用户是分别持有控制,移位还是命令。同时检查metaKey是否为which,这意味着用户中间点击了该链接。

2