This commit is contained in:
Vanessa 2022-09-17 22:04:07 +08:00
parent cd3da736db
commit 772dee2fc7
3 changed files with 9 additions and 2 deletions

View file

@ -116,6 +116,9 @@ export const getEditorRange = (element: Element) => {
targetElement = getContenteditableElement(element);
if (!targetElement) {
targetElement = element;
} else if (targetElement.tagName === "TABLE") {
// 文档中开头为表格,获取错误 https://ld246.com/article/1663408335459?r=88250
targetElement = targetElement.querySelector("th") || element.querySelector("td");
}
}
range = targetElement.ownerDocument.createRange();

View file

@ -78,7 +78,7 @@ export const getNoContainerElement = (element: Element) => {
};
export const getContenteditableElement = (element: Element) => {
if (!element || element.getAttribute("contenteditable") === "true") {
if (!element || (element.getAttribute("contenteditable") === "true") && !element.classList.contains("protyle-wysiwyg")) {
return element;
}
return element.querySelector('[contenteditable="true"]');

View file

@ -1727,7 +1727,7 @@ export class WYSIWYG {
const emptyEditElement = getContenteditableElement(emptyElement) as HTMLInputElement;
range.selectNodeContents(emptyEditElement);
range.collapse(true);
emptyEditElement.focus();
focusByRange(range)
} else if (lastEditElement) {
range.selectNodeContents(lastEditElement);
range.collapse(false);
@ -1746,6 +1746,10 @@ export class WYSIWYG {
if (!protyle.wysiwyg.element.querySelector(".protyle-wysiwyg--select")) {
countSelectWord(newRange);
}
if (getSelection().rangeCount === 0) {
// https://github.com/siyuan-note/siyuan/issues/5901
focusByRange(newRange)
}
/// #if !MOBILE
pushBack(protyle, newRange);
/// #endif