JavaScript を使用して Safari でキーボード イベントをディスパッチする方法
JavaScript では、特に Safari でキーボード イベントをシミュレートすると問題が発生する可能性があります。この問題は、イベント オブジェクト内で特定の keyCode またはどのプロパティを設定しようとすると発生します。代わりに、これらのプロパティはデフォルトで 0 に設定され、イベント シミュレーション ロジックのシームレスな実行を妨げます。
この問題に対処するための信頼できる解決策には、DOM キーボード イベント レベル 3 ポリフィルを利用することが含まれます。このポリフィルを実装すると、key、char、shiftKey プロパティを直接定義できる拡張構文を活用できます。さらに、「keyCode」、「charCode」、「this」などのレガシー プロパティの定義をサポートし、古いブラウザとの互換性を提供します。
element.addEventListener("keydown", function(e){ console.log(e.key, e.char, e.keyCode) }) var e = new KeyboardEvent("keydown", {bubbles : true, cancelable : true, key : "Q", char : "Q", shiftKey : true}); element.dispatchEvent(e); //If you need legacy property "keyCode" // Note: In some browsers you can't overwrite "keyCode" property. (At least in Safari) delete e.keyCode; Object.defineProperty(e, "keyCode", {"value" : 666})
ポリフィルを利用することで、キーボード イベントを効果的にディスパッチできるようになりました。必要な keyCode 値を使用して、Safari での信頼性の高いイベント シミュレーションを保証します。
以上が正しいキーコードを使用してSafariでキーボードイベントをシミュレートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。