Skip to content

修复:防止“词典”快捷键触发拼写错误#284

Open
sssseaman wants to merge 1 commit into
zyronon:masterfrom
sssseaman:fix-collect-popover-shortcuts
Open

修复:防止“词典”快捷键触发拼写错误#284
sssseaman wants to merge 1 commit into
zyronon:masterfrom
sssseaman:fix-collect-popover-shortcuts

Conversation

@sssseaman

Copy link
Copy Markdown

问题

在单词练习时,按 Enter 可以打开“收藏到词典”的选择弹窗。弹窗支持使用数字快捷键(123 等)选择具体词典。

但目前这些数字按键会先被全局打字监听器处理,再被词典弹窗处理。因此按数字选择词典时,数字也可能被录入到单词拼写输入中,导致触发拼写错误。

复现方式

  1. 进入单词练习页面。
  2. Enter 打开“收藏到词典”弹窗。
  3. 123 选择目标词典。
  4. 词典会被选中,但数字按键也可能进入单词打字流程,导致误判为输入错误。

原因

全局键盘监听器注册在 window 的捕获阶段,而词典弹窗的键盘监听器注册在 document 的捕获阶段。

由于 window 捕获阶段会先执行,数字键会先被派发到练习打字逻辑中,词典弹窗再拦截时已经来不及了。

解决方案

当“收藏到词典”弹窗可见时,全局练习键盘监听器跳过 keydownkeyup 事件处理。

这样弹窗打开期间,键盘事件由弹窗自己处理,包括:

  • 使用 1-9 选择词典
  • 使用 Escape 关闭弹窗
  • 新建自定义词典时正常输入名称

弹窗关闭后,全局打字输入和练习快捷键会恢复正常。

验证

  • 确认改动范围仅限全局键盘监听逻辑。
  • 确认提交中只包含 packages/core/src/hooks/event.ts
  • 已运行 Nuxt 生产构建并通过:
    ..\..\node_modules\.bin\nuxt.CMD build

fix: prevent collect popover shortcuts from typing
@vercel

vercel Bot commented Jul 1, 2026

Copy link
Copy Markdown

@sssseaman is attempting to deploy a commit to the zyronon's projects Team on Vercel.

A member of the Team first needs to authorize it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant