正しいキーコードを使用してSafariでキーボードイベントをシミュレートするにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-23 02:17:09
オリジナル
833 人が閲覧しました

How to Simulate Keyboard Events in Safari with the Correct Keycode?

JavaScript を使用して Safari でキーボード イベントをディスパッチする方法

JavaScript では、特に Safari でキーボード イベントをシミュレートすると問題が発生する可能性があります。この問題は、イベント オブジェクト内で特定の keyCode またはどのプロパティを設定しようとすると発生します。代わりに、これらのプロパティはデフォルトで 0 に設定され、イベント シミュレーション ロジックのシームレスな実行を妨げます。

この問題に対処するための信頼できる解決策には、DOM キーボード イベント レベル 3 ポリフィルを利用することが含まれます。このポリフィルを実装すると、key、c​​har、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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート