From f6f358f1ebf0ca685c7c485d881eeb5c00c67fde Mon Sep 17 00:00:00 2001 From: Vanessa Date: Fri, 23 Sep 2022 09:10:31 +0800 Subject: [PATCH] :bug: fix https://github.com/siyuan-note/siyuan/issues/5924 --- app/src/protyle/wysiwyg/index.ts | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/app/src/protyle/wysiwyg/index.ts b/app/src/protyle/wysiwyg/index.ts index acde46d53..9563e2e88 100644 --- a/app/src/protyle/wysiwyg/index.ts +++ b/app/src/protyle/wysiwyg/index.ts @@ -119,7 +119,10 @@ export class WYSIWYG { // 使用 inlineElement.innerHTML 会出现 https://ld246.com/article/1627185027423 中的第2个问题 dataLength = 4; } + // https://github.com/siyuan-note/siyuan/issues/5924 if (currentTypes.length > 0 && range.toString() === "" && range.startOffset === inputData.length && inlineElement.tagName === "SPAN" && + inlineElement.textContent.replace(Constants.ZWSP, "") !== inputData && + inlineElement.textContent.replace(Constants.ZWSP, "").length >= inputData.length&& !hasPreviousSibling(range.startContainer) && !hasPreviousSibling(inlineElement)) { const html = inlineElement.innerHTML.replace(Constants.ZWSP, ""); inlineElement.innerHTML = html.substr(dataLength); @@ -131,15 +134,14 @@ export class WYSIWYG { } if (// 表格行内公式之前无法插入文字 https://github.com/siyuan-note/siyuan/issues/3908 inlineElement.tagName === "SPAN" && - inlineElement.textContent.replace(Constants.ZWSP, "") !== inputData && + inlineElement.textContent !== inputData && range.toString() === "" && range.startContainer.nodeType === 3 && (currentTypes.includes("inline-memo") || currentTypes.includes("text") || currentTypes.includes("block-ref") || currentTypes.includes("file-annotation-ref") || currentTypes.includes("a")) && !hasNextSibling(range.startContainer) && range.startContainer.textContent.length === range.startOffset && - inlineElement.textContent.replace(Constants.ZWSP, "").length >= inputData.length // 为空的时候需要等于 + inlineElement.textContent.length > inputData.length ) { const position = getSelectionOffset(inlineElement, protyle.wysiwyg.element, range); - // ctrl+k 会产生 ZWSP,需要移除 - const html = inlineElement.innerHTML.replace(Constants.ZWSP, ""); + const html = inlineElement.innerHTML; if (position.start === inlineElement.textContent.length) { // 使用 inlineElement.textContent **$a$b** 中数学公式消失 inlineElement.innerHTML = html.substr(0, html.length - dataLength); @@ -147,12 +149,6 @@ export class WYSIWYG { inlineElement.after(textNode); range.selectNodeContents(textNode); range.collapse(false); - } else if (position.start === inputData.length) { - inlineElement.innerHTML = html.substr(dataLength); - const textNode = document.createTextNode(inputData); - inlineElement.before(textNode); - range.selectNodeContents(textNode); - range.collapse(false); } } }