7

「www.bla.com」などの特定のURLに移動するためのhrefが添付されたリンク(アンカー)があります。

<a href='http://www.bla.com' />

また、clickいくつかのアクションを実行してから同じウィンドウでhtmlビューを開くハンドラーがリンクにアタッチされています。すべてが完璧に機能します。

ただし、ユーザーが「ctrl + click」を使用して新しいタブ/ウィンドウでリンクを開くと、クリックハンドラーが優先されているように見え、同じウィンドウでhtmlビューが開きます。しかし、「ctrl + click」の動作を維持し、ユーザーが新しいタブ/ウィンドウでリンクを開くことができるようにしたい(通常のリンクと同じように)。どうすればそれができますか?

前もって感謝します!

4

4 に答える 4

8
function process(e){
   var evt = e ? e:window.event;
   if(evt.ctrlKey)
      alert("ctrlClicked");
}​

evt.ctrlKeyは、コントロールキーが押された場合にtrueを返します。条件は、「if」ブロック内に書き込むことができます。これは、chromeとffについてのみテストしました。

于 2012-11-07T03:55:01.927 に答える
1

おそらくこのようなものですか?

function onclick(e){
   var event = e ? e:window.event;
   this.target = event.ctrlKey?"_blank":"_self";
}​
于 2012-11-07T04:45:15.127 に答える
0

関連するクリックイベントオブジェクトctrlKeyのプロパティは、クリックが発生したときにコントロールキー(または同等のもの)が押された場合に設定されますtrue。イベントオブジェクトを確認し、Ctrlキーが押された場合は、「HTMLビュー」を実行しないでください。

<a href="#" onclick="alert(event.ctrlKey);">Click me!</a>

ただし、ユーザーが別の方法でリンクをアクティブ化すると、クリックイベントが発生する場合と発生しない場合があります。

例えば

  1. 右ボタン->「新しいタブ/ウィンドウで開く」-クリックイベントなし(Firefox、IE)
  2. タブでリンクにフォーカスし、Enterキーを押します-クリックイベントをディスパッチします(Firefox、IE)
于 2012-11-07T03:42:45.050 に答える
-2
<a target="_blank" href='http://www.bla.com' />

アンカータグ内にtarget="_blank"を追加します。

于 2012-11-07T03:25:42.227 に答える