我有一个链接,为了优化页面响应/流量,我使用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)
答案 0 :(得分:8)
检查event
的{{1}},ctrlKey
和shiftKey
媒体资源。它们告诉您用户是分别持有控制,移位还是命令。同时检查metaKey
是否为which
,这意味着用户中间点击了该链接。
2