首页 > web前端 > js教程 > 正文

如何使用 JavaScript 在 Safari 中可靠地创建键盘事件?

Mary-Kate Olsen
发布: 2024-11-13 08:37:02
原创
886 人浏览过

How to Reliably Create Keyboard Events in Safari using JavaScript?

使用 JavaScript 在 Safari 中创建键盘事件

使用 JavaScript 在 Safari 中模拟键盘事件可能具有挑战性,正如您尝试使用文档所证明的那样.createEvent。该问题源于 keyCode 属性的不一致行为,尽管您努力将其设置为 115,但它仍被初始化为 0。

要解决此问题,我们建议使用 DOM 键盘事件级别 3 填充,它增强了 JavaScript 的事件模型,以支持现代浏览器并为旧属性提供向后兼容性。

使用此polyfill,您可以创建键盘事件,如下所示:

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板