gpt4 book ai didi

javascript - 移动到最后一个带有 rangy 的字符

转载 作者:行者123 更新时间:2023-11-30 17:01:41 25 4
gpt4 key购买 nike

我有一个 contenteditable div,我想将范围移动到当前范围之后的一个字符。

我现在想检查插入符后面的字符是否是某个字符,如果是则在它后面放置插入符

我使用了这段代码,但它不起作用

 placeCaretAfterHiddenCharacter:function(containerEl,afterCharacters) {
var afterChar = "", sel, range, afterRange,rangeHtml;
sel = rangy.getSelection();
if (sel.rangeCount > 0) {
range = sel.getRangeAt(0).cloneRange();
var endRange = rangy.createRange();
endRange.selectNodeContents(containerEl);
endRange.collapse(false);

range.setEnd(containerEl, endRange.endOffset);

var div = this.cloneSelectionInDiv(range);
//to get string as html as range removes the html and returns the text only
rangeHtml = div.innerHTML;
afterChar = rangeHtml.slice(afterCharacters-1);

if(/[\u200B\u200C\u200D\uFEFF\u2028\u2029]/g.test(afterChar)) {
range.setStartAfter(range.startContainer,range.startOffset);
range.collapse(true);
sel.addRange(range);
}

}
},

afterChar 设置正确但插入符号没有移动。

如何做到这一点?

最佳答案

您可以使用 Rangy 1.3 的 TextRange module .例如,要将插入符号向前移动一个字符,您可以执行以下操作:

rangy.getSelection().move("character", 1);

关于javascript - 移动到最后一个带有 rangy 的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28727059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com