3

通常、この組み合わせは、Mac 用の Chrome、Firefox、および Safari で新しいタブとしてリンクを開きます。これを検出する方法はありますか?私はjqueryの を知っていますが、単純な左クリックと見分けがつかないevent.whichの値を与えます。1

'click'ユース ケースはバックボーン HTML5 プッシュステートを使用する場合です。この場合、通常のナビゲーションではページの読み込みをトリガーしないイベント ハンドラーをアタッチしますが、ユーザーは ⌘-⇧-クリックで新しいタブでリンクを開くことができます。

4

1 に答える 1

4

イベントのmetaKeyおよびshiftKeyプロパティを使用できます。

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

したがって、たとえば、#!実際に URL をたどる代わりにルーティングを行っていて、コマンドまたはコマンド + シフトで通常の動作 (新しいタブで開く) を実行したい場合は、次のようになります。

function followLink(e) {
  if(!e.metaKey) e.preventDefault();
  yourApp.navigate('/link');
}
于 2012-06-06T09:02:45.193 に答える