Vanessa 2026-04-19 11:01:52 +08:00
parent 4abf412304
commit b0bba1ac93

View file

@ -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) => {