0

キーへの応答を実装するつもりだったので、次のものから始めました。

window.addEventListener('keydown', function(e) {
    alert(e.keyCode)
}, true)

ほとんどのキーで動作します。キーを押すと、キーコードが通知されます。(もちろん、これは最終的な設計ではありません。デバッグを容易にするために機能するかどうかを確認するためのテストです。)

しかし、興味深い動作を見つけました。スペースキーを使用すると奇妙なことが起こります。

スペースキーを押すと、番号「32」(スペースのキーコード) のアラートが表示されます。しかし、キーを離すと、アラートは自動的に閉じます!

Enterキーを使用して、アラートを閉じるにはもう一度押す必要があることがわかりました。ただし、スペースはありません。

どうしてこれなの?

4

2 に答える 2

1

スペースバーは、ブラウザーが警告メッセージ (Enter など) を閉じるために使用するためです。

説明 : 興味深い動作は、ブラウザーがスペース バー キーアップを使用してアラートを閉じることです。そのため、キーダウン/キーアップの間のダイアログのみが表示されます (スペース バーが繰り返されない例の場合)。

于 2013-03-23T14:25:53.630 に答える
0

キーダウンでアラートをトリガーしています。つまり、アラートのボタンがおそらくリッスンするキーアップイベントは、アラートが既に存在するときに発生し、アラートをすぐに効果的に削除します。

代わりにキーアップでアラートをトリガーする場合、これは問題になりません。

于 2013-03-23T14:31:42.417 に答える