如何在令人满意的DOM中使用HTML标记进行插入符号偏移? 在Plunker中我没有HTML标签就得到了偏移量。 它的主要思想是,插入特殊文字,我想要的地方。
function getCaretCharacterOffsetWithin(element) {
var caretOffset = 0;
try {
if (typeof window.getSelection != "undefined") {
var range = window.getSelection().getRangeAt(0);
var preCaretRange = range.cloneRange();
preCaretRange.selectNodeContents(element);
preCaretRange.setEnd(range.endContainer, range.endOffset);
caretOffset = preCaretRange.toString().length;
} else if (typeof document.selection != "undefined" && document.selection.type != "Control") {
var textRange = document.selection.createRange();
var preCaretTextRange = document.body.createTextRange();
preCaretTextRange.moveToElementText(element);
preCaretTextRange.setEndPoint("EndToEnd", textRange);
caretOffset = preCaretTextRange.text.length;
}
} catch (e) {
}
return caretOffset;
}
UPD: 是的,我的问题可能有类似,已经存在于stackoverflow中,但有一些小差异
UPD2: 问题解决了。工作示例here