通常,此组合会在 Chrome、Firefox 和 Mac 版 Safari 中将链接作为新选项卡打开。有没有办法检测到这一点?我知道 jquery 的event.which
,但它给出了 的值1
,这与简单的左键单击没有区别。
用例是 Backbone HTML5 pushstate,我想在其中附加一个'click'
事件处理程序,该处理程序不会触发页面加载以进行正常导航,但仍允许用户通过 ⌘-⇧-click 在新选项卡中打开链接。
通常,此组合会在 Chrome、Firefox 和 Mac 版 Safari 中将链接作为新选项卡打开。有没有办法检测到这一点?我知道 jquery 的event.which
,但它给出了 的值1
,这与简单的左键单击没有区别。
用例是 Backbone HTML5 pushstate,我想在其中附加一个'click'
事件处理程序,该处理程序不会触发页面加载以进行正常导航,但仍允许用户通过 ⌘-⇧-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');
}