使用JavaScript 在Safari 中建立鍵盤事件
使用JavaScript 在Safari 中模擬鍵盤事件可能具有挑戰性,正如您嘗試使用文件所證明的那樣.createEvent。該問題源自於 keyCode 屬性的不一致行為,儘管您努力將其設為 115,但它仍被初始化為 0。
要解決此問題,我們建議使用 DOM 鍵盤事件等級 3 填充,它增強了 JavaScript 的事件模型來支援現代瀏覽器並為遺留屬性提供向後相容性。
使用這個polyfill,您可以建立鍵盤事件,例如so:
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、charCode 等遺留屬性,讓你直接指定這些屬性:
var e = new KeyboardEvent("keydown", { bubbles : true, cancelable : true, char : "Q", key : "q", shiftKey : true, keyCode : 81 });
此外,你還可以找到一個跨瀏覽器initKeyboardEvent 版本在單獨的要點中。
透過利用這些技術,您可以在 Safari 中可靠地建立和調度鍵盤事件,確保不同瀏覽器之間的行為一致。
以上是如何使用 JavaScript 在 Safari 中可靠地建立鍵盤事件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!