フォームには複数のボタンがあるdivがあります。いずれかのボタンをクリックすると、このdivは非表示になり、新しいdivが表示されます。私の場合は、ボタンのクリックトリガーにajaxを呼び出し、新しく表示されたdivを設定するデータを呼び出します。ロードされるdivは、プレーヤーがプレイできるようにキーイベントをキャプチャするゲームです。WindowsのKeyEventターゲットFirefoxは非表示のボタンのままです
WindowsのFirefoxでは、すべてのキーイベントがbody要素ではなく最初のdivでクリックされたボタンを対象にしていることがわかりました。これは、enter
キーがそのボタンを再クリックする(ゲームを再開する)ことを意味します。 divを切り替えるときにボタンを無効にすると、キーイベントはまったくトリガーされず(再生できなくなります)。
この状況に対処するにはどうすればよいでしょうか?
document.activeElement.blur()
を、私は私のボタンのonclickの関数にこれを追加しましたし、これを解決するためのようだ:これは私自身の質問や回避策への答えですが、私が呼び出すことができるように見える場合
なぜ私はキーイベントがバブルアップするので、ぼかしなしでイベントを取得しないのだろうかと思います。しかし、予期しない方法でキーイベントに反応しない要素にフォーカスを設定すると、問題の良い解決策のように思えます。 –