我有这段代码,我用它来获取光标在可编辑 div 中的位置:
function getMeCurPos(element){
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;
return caretOffset;
}
}
问题是,返回的 caretOffset 只计算文本内容而不是 html 标签。例如:
在我的可编辑 div 中考虑这个字符串:
Hey <b>jony</b>, whats goin on in the | party
*光标用|
字符表示。
做 getMeCurPos(ele) 返回:30
但它应该返回37
。它不计算b
标签