如何在javascript中检测OS X的Command-Shift-Click?

时间:2012-06-06 08:17:48

标签: jquery macos backbone.js pushstate

通常情况下,此组合会在Chrome,Firefox和Safari for Mac中打开一个新标签链接。有没有办法检测到这个?我知道jquery的event.which,但它的值为1,与简单的左键单击无法区分。

用例是Backbone HTML5 pushstate,我想在其中附加一个'click'事件处理程序,它不会触发正常导航的页面加载,但仍然允许用户在新选项卡中打开链接⌘-⇧点击。

1 个答案:

答案 0 :(得分:4)

您可以使用活动的metaKeyshiftKey属性:

$(window).click(function(e) {
  if(e.metaKey && e.shiftKey) {
    console.log("Command+Shift+Click");
  } else {
    console.log("Other click");
  }
});

所以,例如,如果您正在进行#!路由而不是实际关注网址,并希望命令或命令+ shift执行正常行为(在新选项卡中打开),那么您将拥有类似< / p>

function followLink(e) {
  if(!e.metaKey) e.preventDefault();
  yourApp.navigate('/link');
}