首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JS按键+按键+ preventDefault

JS按键+按键+ preventDefault
EN

Stack Overflow用户
提问于 2021-12-25 17:21:06
回答 1查看 272关注 0票数 0

我们拥有的:

  1. keydown事件+ preventDefault防止keypress事件(证据:https://stackoverflow.com/a/57401334/9398364)
  2. stopPropagation根本没有帮助--
  3. )我们不能用dispatchEvent模拟按键,因为我们不知道不可打印的event.key值的完整列表(我们不能使用event.key.codePointAt(0))

将其作为unicode值抛出)

我们需要的是:

  1. 禁用默认浏览器键反应(即tab按下铬键),而不需要巨大的开关表达式

  1. 检测keydown事件,因为我们需要shiftctrl和其他关键事件(event.code matters)

ctrl)

  • 检测keypress事件,因为我们需要在没有input事件的情况下输入unicode字符(event.key matters),而无需检查它是否是不可打印的字符(如shift和)。

多么?

UPD:似乎非unicode event.key有>1长度(源:https://stackoverflow.com/a/70401792/9398364),有证据证明吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-25 17:35:23

像这样解决:

代码语言:javascript
复制
    window.addEventListener('keydown', function (event)
        {
            onKeyboard(event.code);
            if (event.key.length === 1 && !event.ctrlKey && !event.metaKey)
            {
                const utf16Code = event.key.codePointAt(0);
                onKeyboardInput(utf16Code);
            }
            event.preventDefault();
        }, false);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70481633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档