js模拟键盘事件

2021-09-04

function fireKeyEvent(el: HTMLElement, evtType: string, keyChar: string, keyCode: number) {
    el.focus()
    const KeyboardEventInit = {key: keyChar, code: keyChar, location: 0, repeat: false,
      isComposing: false, bubbles: true, composed: true, charCode: keyCode, keyCode: keyCode}
    const evtObj: any = new KeyboardEvent(evtType, KeyboardEventInit)
    evtObj.stop = evtObj.stopPropagation
    el.dispatchEvent(evtObj)
  }
fireKeyEvent(target, 'keydown', 'ArrowUp', 38)

虽然MDN上说charCodekeyCode已废弃,但是KeyboardEventInit中不加这2个配置,这个事件根本就触发不了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本章内容:理解事件流、使用事件处理程序、不同的事件类型 JavaScript与HTML之间的交互是通过事件实现的。...
    了凡和纤风阅读 443评论 0 0
  • 事件是什么,可以用来做什么,什么时候用到它? 事件,就是文档或浏览器窗口中发生的一些特定的交互瞬间。JavaScr...
    茂茂爱吃鱼阅读 1,605评论 0 16
  • 事件流 IE和Netscape开发团队提出了完全相反的两种事件流的概念,事件冒泡流和事件捕获流。 事件冒泡 事件由...
    exialym阅读 1,045评论 0 9
  • 对键盘事件的支持主要遵循DOM0级,虽然DOM3级为键盘事件制定了规范,但是并不是所有浏览器的支持的。为了提高网页...
    Miss____Du阅读 1,396评论 6 6
  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 3,661评论 1 11

友情链接更多精彩内容