Safari でのキーボード イベント シミュレーション: JavaScript とレガシー プロパティの活用
Web 開発の領域では、ユーザー入力イベントのシミュレーションが必要になることがよくあります。テストと自動化の目的。キーボードイベントも例外ではありません。ただし、Safari でキーボード イベントを作成して起動することには、歴史的に課題がありました。この記事では、JavaScript を使用して Safari でキーボード イベントをエミュレートする複雑さを検討し、さまざまなアプローチとその制限について詳しく説明します。
最初のアプローチでは、JavaScript の「createEvent」メソッドと「initKeyboardEvent」メソッドを利用します。このメソッドを最初に試みたにもかかわらず、イベント オブジェクトの "keyCode" プロパティは実行後も 0 に設定されたままです。
2 番目のメソッドは、"createEvent" メソッドと "initUIEvent" メソッドを利用し、"keyCode" プロパティを手動で設定します。 。ただし、このメソッドは、「keyCode」プロパティが 0 にリセットされるという前述の問題にも直面しています。
これらの制限を克服するために、DOM キーボード イベント レベル 3 ポリフィルを組み込んだ 3 番目のアプローチが導入されています。このポリフィルを使用すると、開発者は次のようにキーボード イベントをシミュレートできます:
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);
このアプローチは、Safari でキーボード イベントをシミュレートするためのより信頼性の高い方法を提供します。さらに、ポリフィルを使用すると、「keyCode」、「charCode」、「what」などのレガシー プロパティをカスタマイズできます。
レガシー プロパティ
次のようなレガシー プロパティ「keyCode」と「charCode」は、多くのアプリケーションやスクリプトで引き続き使用されます。ブラウザ間の互換性を確保するために、DOM キーボード イベント レベル 3 ポリフィルはこれらのプロパティもサポートします。たとえば、次のコードは、ポリフィル内の "keyCode" プロパティの設定を示しています:
var e = new KeyboardEvent("keydown", { bubbles : true, cancelable : true, char : "Q", key : "q", shiftKey : true, keyCode : 81 });
これらの強化された機能を使用すると、開発者は Safari で自信を持ってキーボード イベントをシミュレートでき、より堅牢なテストと自動化のシナリオが可能になります。
以上がJavaScript を使用して Safari でキーボード イベントをシミュレートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。