我希望能在更改HTML元素内容时保留用户的选择。如果在更新元素时选择的开头或结尾恰好在内部,整个选择将丢失。拖动创建选择时也会发生这种情况,因此如果用户正在拖动选择并且光标在元素上时更新了元素的内部HTML,则用户必须重新开始。
我有一个包含格式为“hh:mm:ss am”的时间并每秒更新的元素。文本长度永远不会改变,所以这不是问题。
我尝试过以下方法:
我有一个包含格式为“hh:mm:ss am”的时间并每秒更新的元素。文本长度永远不会改变,所以这不是问题。
我尝试过以下方法:
var s = window.getSelection();
if (!s.isCollapsed) {
var range = document.createRange();
range.setStart(s.anchorNode,s.anchorOffset);
range.setEnd(s.focusNode,s.focusOffset);
}
document.getElementById('time').innerHTML = new Date().toString();
if (typeof range != 'undefined') { s.removeAllRanges(); s.addRange(range); }
这是我研究所得到的最佳结果,但似乎并没有什么区别。
如果选择开始或结束于此范围内,我该怎么做才能防止选择消失?