JavaScript を使用して Safari でキーボード イベントをシミュレートする方法

Patricia Arquette
リリース: 2024-11-21 09:10:11
オリジナル
633 人が閲覧しました

How to Simulate Keyboard Events in Safari Using JavaScript?

JavaScript を使用した Safari でのキーボード イベントのシミュレート

Safari ブラウザ内でキーボード イベントをシミュレートするために、JavaScript を使用して 2 つのアプローチがテストされました。

アプローチ1:

var event = document.createEvent("KeyboardEvent");
event.initKeyboardEvent("keypress", true, true, null, false, false, false, false, 115, 0);
ログイン後にコピー

アプローチ 2:

var event = document.createEvent("UIEvents");
event.initUIEvent("keypress", true, true, window, 1);
event.keyCode = 115;
ログイン後にコピー

ただし、どちらかのコードを実行した後、イベント オブジェクトの keyCode/どのプロパティは 0 に設定されたままになります。 、失敗を示します

解決策:

DOM キーボード イベント レベル 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);

// If the legacy "keyCode" property is required:
delete e.keyCode;
Object.defineProperty(e, "keyCode", {"value" : 666})
ログイン後にコピー

追加の更新:

DOM キーボード イベント レベル3 ポリフィルはレガシー プロパティをサポートするようになりました:

var e = new KeyboardEvent("keydown", {
    bubbles : true,
    cancelable : true,
    char : "Q",
    key : "q",
    shiftKey : true,
    keyCode : 81
});
ログイン後にコピー

ブラウザ間の互換性のために、次の initKeyboardEvent 関数をポリフィルの外部で利用できます:

function initKeyboardEvent(type, bubbles, cancelable, view, key, location, modifiers, repeat) {
  var event = document.createEvent("KeyboardEvent");
  event.initKeyboardEvent(type, bubbles, cancelable, view, key, location, modifiers, repeat, false, false, false, false, false, false, 0);
  return event;
}
ログイン後にコピー

提供された例とデモを参照してください。さらに詳しく説明します。

以上がJavaScript を使用して Safari でキーボード イベントをシミュレートする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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