4

修飾キーが押された場合のハイパーリンクのクリック動作に関する標準はありますか?
たとえば、Firefox は、 が押された場合に新しいタブを作成し、 が押されたCtrl場合に新しいウィンドウを作成しますShift
Opera は、フォーカスされていない新しいタブをCtrl、およびフォーカスされている に作成しShiftます。
それは完全にブラウザに依存するものですか、それとも考慮すべきガイドラインがありますか?

4

2 に答える 2

1

これはブラウザに依存し、予想よりもはるかに複雑です: 中クリック ( onclick.新しいタブ」のコンテキスト メニュー、モバイル ブラウザー、その他多数。

あなたはコメントで言う:

私は自分のウェブサイト用のjsを書いています.onClickイベントがバインドされたハイパーリンクをクリックして、ユーザーが期待する動作を知りたいです。

href推奨される方法は、可能であれば要素に実際の URL を提供し、ブラウザがそれを新しいタブで開く処理を行うことです。イベント ハンドラーからイベントをキャンセルすることで、単純な左クリックの既定の動作をオーバーライドできます。

于 2016-04-03T16:00:55.450 に答える
-1

あなたは使用することができます

target="_blank"

Webページを強制的に新しいタブ/ウィンドウで開く属性(ブラウザによって異なります)。例えば:

<a href="www.google.com" taget="_blank">

- アップデート -

少し調べてみましたが、ハイパーリンクと修飾子に関しては何もわかりません。考えられるのは、JavaScriptの修飾子キーを処理することだけです。

新しいページが新しいタブ/ウィンドウにポップアップするという問題がある場合は、次のような方法で無効にすることができます。ただし、ユーザーがjavascriptを無効にすると、リンクはまったく機能しなくなり、理想的ではありません。

<HTML>
<HEAD>
<TITLE>Event Modifiers</TITLE>
<SCRIPT LANGUAGE="JavaScript">

function checkMods(event){
       if(event.shiftKey) {
        alert("Shift, held.");
        return false
       }
       else{
        window.location = "http://www.google.com/"
        return true
       }

}

</SCRIPT>
</HEAD>
<BODY>
<H1>Event Modifiers</H1>
<HR>
<P>This link wont work if Shift is held while clicking. 
<A HREF="javascript:void(0)" onClick="return checkMods(event)">
this link</A>
</BODY>
</HTML>
于 2013-02-20T09:31:22.920 に答える