Gab*_*vay 5 browser jquery onclick
我有一个链接,为了优化页面响应/流量,我click使用javascript click处理程序处理它的事件.在click,我只加载页面的一些部分.但链接的URL是正确的,并在独立选项卡中打开它将正确打开页面.
但是当用户按下链接上的CMD-Click(在新选项卡中打开链接)时,click处理程序将运行,并且不会在新选项卡中打开页面.基本上我禁用了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
})
Run Code Online (Sandbox Code Playgroud)
我是否必须编写OS /浏览器特定代码才能解决TODO上述问题?(我用jQuery)
检查event的ctrlKey,shiftKey和metaKey性质.它们告诉您用户是分别持有控制,移位还是命令.另外检查which不是2,这意味着用户中间点击了该链接.
$(".link").on("click", function(event) {
if (event.ctrlKey || event.shiftKey || event.metaKey || event.which == 2) {
return true;
}
// ... load only necessary things for normal clicks
});
Run Code Online (Sandbox Code Playgroud)