通常情况下,此组合会在 Mac 版 Chrome、Firefox 和 Safari 中将链接打开为新选项卡。有什么方法可以检测到这一点吗?我知道 jquery 的 event.which
,但它给出的值为 1
,这与简单的左键单击没有区别。
用例是 Backbone HTML5 Pushstate,我想附加一个 'click'
事件处理程序,该处理程序不会触发正常导航的页面加载,但仍然允许用户打开链接通过 ⌘-⇧ 单击打开新选项卡。
最佳答案
您可以使用事件的 metaKey
和 shiftKey
属性:
$(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/