ここで推測しますが、後でMacから確認します。これはMacで動作することが確認されています。
Win ctrl+clickまたはMaccommand+ clickは、他の修飾キー(Alt + Click、Shift + Clickなど)を使用したクリックと同じように、「通常の」クリックリスナーによって取得されます。
MacでのCtrlキーを押しながらクリックするとOSレベルで右クリックとして解釈されるため、これは特に混乱を招きます。一方、コマンドクリックはミドルクリックとして解釈されるのではなく、ブラウザの設定です。
変更されたクリックに特に依存するインサイト機能がないと仮定すると、クリックリスナーからそのようなイベントを除外し、代わりにそれらがブラウザによってネイティブに処理されるようにバブルアップできるようにすることが適切です。同様の状況での誰かの経験を考えると、クリックハンドラーに以下を追加できるはずです(Brilliandが指摘したようにライブラリレベルのデリゲートである可能性があります)。
if (e.metaKey || e.ctrlKey) return;
e
現在のクリックイベントを参照してハンドラーの先頭に追加すると、次のことを回避できます。e.preventDefault();
アップデート:
それは実際に機能します!このかなりミニマルなフィドルでは、コマンドクリックまたはコントロールクリックのタイミングを認識できるため、コンテンツのajaxフェッチやを含むクリックハンドラーの残りの部分の実行を回避できますe.preventDefault();
。これにより、コマンドクリックをMacで「意図したとおりに」処理できます。つまり、新しいタブでリンクを開くことができます。
この発見を念頭に置いて、これらの行は次のようになります。
if (e.isDefaultPrevented() || e.metaKey || e.ctrlKey) {
return;
}