add:光标保持

This commit is contained in:
shaoyongjun 2024-11-06 13:17:49 +08:00
parent e67eabd237
commit 39e27fe391

View File

@ -8,6 +8,7 @@ define(function (require, exports, module) {
let utils = require("../../common/utils");
let curS = utils.GetSelection();
let curRange = curS.getRangeAt(0); //只考虑一个选区场景
let copyRange = curRange.cloneRange();
let curNode = utils.GetEventTarget(event);
//只处理选择的是一个范围。
if (curS.type !== "Range") {
@ -129,21 +130,6 @@ define(function (require, exports, module) {
}
curSpanContent.innerHTML = copySpan.innerHTML;
//光标保持. for 单行
if (taskMap.size === 1) {
let s = window.getSelection();
if (s.rangeCount > 0) s.removeAllRanges();
let newR = document.createRange();
//重新获取元素
let tmpP = curSpanContent;
let childrenSize = tmpP.childNodes.length;
console.log("debug007: ", tmpP, start, end, childrenSize)
newR.setStart(tmpP, start);
newR.setEnd(tmpP, end);
//区域 添加 到选区
s.addRange(newR);
}
} else {
let total = 0, effectNum = 0;
for (let j = 0; j < curSpanContent.childNodes.length; j++) {
@ -170,6 +156,13 @@ define(function (require, exports, module) {
}
}
}
//光标保持
curS.removeAllRanges();
let newR = document.createRange();
newR.setStart(copyRange.startContainer,start);
newR.setEnd(copyRange.endContainer,end);
curS.addRange(newR);
}
function removeSpanStyleKV(span, styleK, styleV) {