如何使用JavaScript 在Safari 中調度鍵盤事件
在JavaScript 中,模擬鍵盤事件可能會出現問題,尤其是在Safari 中。當您嘗試設定特定的 keyCode 或事件物件中的哪些屬性時,就會出現此問題。相反,這些屬性預設為 0,阻礙了事件模擬邏輯的無縫執行。
要解決此問題,可靠的解決方案涉及利用 DOM 鍵盤事件等級 3 填充。透過實作這個polyfill,您可以利用增強的語法,讓您直接定義key、char和shiftKey屬性。此外,它還支援「keyCode」、「charCode」和「which」等舊屬性的定義,從而提供與舊版瀏覽器的兼容性:
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})
透過利用polyfill,您現在可以有效地調度鍵盤事件具有所需的keyCode 值,確保Safari 中可靠的事件模擬。
以上是如何使用正確的鍵碼在 Safari 中模擬鍵盤事件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!