mirror of
https://github.com/siyuan-note/siyuan
synced 2026-04-21 13:37:52 +00:00
This commit is contained in:
parent
4abf412304
commit
b0bba1ac93
1 changed files with 23 additions and 6 deletions
|
|
@ -541,13 +541,30 @@ export const setInsertWbrHTML = (nodeElement: HTMLElement, range: Range, protyle
|
|||
if (!editElement) {
|
||||
return;
|
||||
}
|
||||
const offset = getSelectionOffset(editElement, nodeElement, range);
|
||||
const cloneNode = nodeElement.cloneNode(true) as HTMLElement;
|
||||
const cloneRange = focusByOffset(cloneNode, offset.end, offset.end, false);
|
||||
if (cloneRange) {
|
||||
cloneRange.insertNode(document.createElement("wbr"));
|
||||
if (nodeElement.classList.contains("table")) {
|
||||
const cellElement = hasClosestByTag(range.startContainer, "TH") || hasClosestByTag(range.startContainer, "TD");
|
||||
if (cellElement) {
|
||||
const offset = getSelectionOffset(cellElement, nodeElement, range);
|
||||
cellElement.classList.add("range");
|
||||
const cloneNode = nodeElement.cloneNode(true) as HTMLElement;
|
||||
cellElement.classList.remove("range");
|
||||
const cloneCellElement = cloneNode.querySelector(".range");
|
||||
const cloneRange = focusByOffset(cloneCellElement, offset.end, offset.end, false);
|
||||
if (cloneRange) {
|
||||
cloneRange.insertNode(document.createElement("wbr"));
|
||||
}
|
||||
cloneCellElement.classList.remove("range");
|
||||
protyle.wysiwyg.lastHTMLs[nodeElement.getAttribute("data-node-id")] = cloneNode.outerHTML;
|
||||
}
|
||||
} else {
|
||||
const offset = getSelectionOffset(editElement, nodeElement, range);
|
||||
const cloneNode = nodeElement.cloneNode(true) as HTMLElement;
|
||||
const cloneRange = focusByOffset(cloneNode, offset.end, offset.end, false);
|
||||
if (cloneRange) {
|
||||
cloneRange.insertNode(document.createElement("wbr"));
|
||||
}
|
||||
protyle.wysiwyg.lastHTMLs[nodeElement.getAttribute("data-node-id")] = cloneNode.outerHTML;
|
||||
}
|
||||
protyle.wysiwyg.lastHTMLs[nodeElement.getAttribute("data-node-id")] = cloneNode.outerHTML;
|
||||
};
|
||||
|
||||
export const focusByWbr = (element: Element, range: Range) => {
|
||||
|
|
|
|||
Loading…
Reference in a new issue