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

标签 jquery macos backbone.js pushstate

通常情况下,此组合会在 Mac 版 Chrome、Firefox 和 Safari 中将链接打开为新选项卡。有什么方法可以检测到这一点吗?我知道 jquery 的 event.which,但它给出的值为 1,这与简单的左键单击没有区别。

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

最佳答案

您可以使用事件的 metaKeyshiftKey 属性:

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

因此,例如,如果您正在执行 #! 路由而不是实际跟踪 url,并且希望 command 或 command+shift 执行正常行为(在新选项卡中打开),您将有类似的东西

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

关于jquery - 如何在 JavaScript 中检测 OS X 的 Command-Shift-Click?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10910554/

相关文章:

javascript - 如何使 jQuery 动画不那么生涩(视频示例)

python - Robot Framework 中的 SSHLibrary 在 Mac 上因超时参数而失败

javascript - 使用 Apple Remote 播放/暂停 Soundcloud 选项卡的脚本

javascript - 如何在初始页面加载时禁用 Backbone.js 路由

javascript - 将初始数据加载到主干应用程序的最佳实践?

jquery - 样式 jQuery 对话框按钮

jquery - 如何使用类获取值(value)

javascript - 网站加载速度和 Bootstrap "Carousel"图片加载

macos - macOS Apple M1 上的 Tensorflow

javascript - 主干 Json View 模板