缺陷 / 高 / 前端组件
src/hooks/useKeyboardShortcuts.ts
useKeyboardShortcuts 注册 14 个全局快捷键,监听 window keydown 事件,未检查事件目标是否为 input/textarea/contentEditable:
/
Ctrl+K
function isInputTarget(e: KeyboardEvent): boolean { const target = e.target as HTMLElement; return ['INPUT', 'TEXTAREA'].includes(target.tagName) || target.isContentEditable; } document.addEventListener('keydown', (e) => { // 单字符快捷键在 input 中禁用 if (isInputTarget(e) && e.key.length === 1 && !e.ctrlKey && !e.metaKey) { return; } // Ctrl+K 等组合键仍可触发 handleShortcut(e); });
或使用 react-hotkeys-hook 等库(符合开发规范)。
No dependencies set.
The note is not visible to the blocked user.
问题类型
缺陷 / 高 / 前端组件
文件位置
src/hooks/useKeyboardShortcuts.ts问题描述
useKeyboardShortcuts 注册 14 个全局快捷键,监听 window keydown 事件,未检查事件目标是否为 input/textarea/contentEditable:
/触发命令模式、Ctrl+K触发搜索影响
建议修复
或使用 react-hotkeys-hook 等库(符合开发规范)。