3 回答

TA貢獻2003條經(jīng)驗 獲得超2個贊
這是一篇非常古老的文章,但仍然是在Google上搜索的第一批結(jié)果之一,因此也許仍然有用??紤]到html標記和換行符,這對我來說也能找到正確的位置(在Firefox上測試):
function getCaretPosition (node) {
var range = window.getSelection().getRangeAt(0),
preCaretRange = range.cloneRange(),
caretPosition,
tmp = document.createElement("div");
preCaretRange.selectNodeContents(node);
preCaretRange.setEnd(range.endContainer, range.endOffset);
tmp.appendChild(preCaretRange.cloneContents());
caretPosition = tmp.innerHTML.length;
return caretPosition;
}
它使用cloneContents功能來獲取實際的html,并將documentfragment附加到臨時div上以獲取html的長度。
添加回答
舉報