diff --git a/app/src/protyle/wysiwyg/keydown.ts b/app/src/protyle/wysiwyg/keydown.ts index ef209d7dd..421195749 100644 --- a/app/src/protyle/wysiwyg/keydown.ts +++ b/app/src/protyle/wysiwyg/keydown.ts @@ -93,9 +93,6 @@ export const getContentByInlineHTML = (range: Range, cb: (content: string) => vo export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => { editorElement.addEventListener("keydown", async (event: KeyboardEvent & { target: HTMLElement }) => { - if (!event.key) { - return; - } if (event.target.localName === "protyle-html" || event.target.localName === "input") { event.stopPropagation(); return; @@ -186,7 +183,7 @@ export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => { } } // 有可能输入 shift+. ,因此需要使用 event.key 来进行判断 - if (event.key !== "PageUp" && event.key !== "PageDown" && event.key !== "Home" && event.key !== "End" && event.key.indexOf("Arrow") === -1 && + if (typeof event.key === "string" && event.key !== "PageUp" && event.key !== "PageDown" && event.key !== "Home" && event.key !== "End" && event.key.indexOf("Arrow") === -1 && event.key !== "Escape" && event.key !== "Shift" && event.key !== "Meta" && event.key !== "Alt" && event.key !== "Control" && event.key !== "CapsLock" && !isNotEditBlock(nodeElement) && !/^F\d{1,2}$/.test(event.key) && // 微软双拼使用 compositionstart,否则 focusByRange 导致无法输入文字