1

次のコードを(ショートカットとして)使用して、フィードバックページでユーザーをリダイレクトします。

<a href='/feedback/' accesskey='f'>feedback</a>

ただし、ユーザーが押すAlt + FとGoogle Chromeメニューバーが開くため、このコードはGoogleChromeでは機能しません。

これらの「ショートカット」を無効にするにはどうすればよいですか?

jQuery、javascriptなどが可能です。

注:リダイレクトするJavaScriptコードを作成しましたが、最初にChromeメニューバーが開き、次にその役割を果たします。

4

5 に答える 5

2

予約されている特定の特別なキーがありAlt+F、それらの1つですが、実際にはブラウザとオペレーティングシステムによって異なります。これがgood articleです。

于 2013-01-01T19:41:18.050 に答える
2

これを可能にするブラウザは、理論的にはセキュリティの脆弱性を露呈します。「システム」の動作を無効にすることが可能な場合は、ユーザーのブラウザを乗っ取ることができます。実際のメニューをシミュレートし、ユーザーにWebサイトではなく自分のローカルマシンと対話していると思わせる偽の「ファイル」メニューをポップアップ表示することができます。

このため、最近のほとんどのブラウザでは不可能です。

于 2013-01-01T20:07:39.823 に答える
2

Google Chrome(V44でテスト済み)では、accesskeyキーボードショートカットにアクセスするための修飾キーはAltです。

ただし、キーがブラウザのショートカットと競合する場合は、でアクセスしAltShiftます。したがって、投稿したソリューションは機能しますが、を使用するだけAltShiftです。

例:

  • 最初のリンクにはAltShift+fでアクセスします(メニューショートカットと競合します)
  • 2番目のリンクはAlt+aでアクセスされます(競合なし)

<h1>Links with accesskey attribute</h1>

<a href='http://www.example.org/' accesskey='f'>
Link to www.example.org (accesskey: f)
</a>
<p/>
<a href='http://apache.org/' accesskey='a'>
Link to apache.org (accesskey: a)
</a>

ちなみに、私はFirefoxが使用するソリューションを好みます。それはAltShift、これらのショートカットに常に使用することです。これは、Chromeの動作よりもユーザーにとって一貫性があります(ただし、Chome開発者には理由があった可能性があります)。


注:上記はWindowsとLinuxで有効です。AFAIK、MacOSX上のChromeはさまざまなショートカットを使用します。

于 2015-08-05T08:51:52.533 に答える
1

他の人が述べているように、それはおそらく良い考えではありません。

しかし、あなたが狂人であり、あなたがやりたいことをするのが好きなら、これは実際にうまくいくでしょう:

document.addEventListener('keydown', (e) => {
  e.preventDefault();
  if (e.altKey) {
    console.log('yay');
  }
})

e.preventDefault()イベントハンドラーの上部に配置する必要があります。これにより、ブラウザのデフォルトの動作(つまり、メニューを開く)が防止されます。

于 2020-03-18T20:03:31.240 に答える
0

ユーザーがを押したときにブラウザ機能を無効にする方法を見つけましたAlt + other button。Javascriptは、関数の最後に書き込むことでこのショートカットを無効にできますreturn false

function function1(){/* code goes here */; return false}
于 2013-01-02T11:35:10.197 に答える