更改contenteditable元素属性innerHTML之后 光标跑到了最前面
时间: 2023-09-02 17:06:23 浏览: 326
更改 `contenteditable` 元素的 `innerHTML` 属性后,光标跑到了最前面,这可能是因为浏览器重新渲染导致的。这种情况下,可以尝试在更改 `innerHTML` 属性之前,获取光标位置,然后在更改完成后,将光标重新设置到之前的位置。
具体实现方式可以使用 `Selection` 接口来获取和设置光标位置。例如,可以使用以下代码来获取当前选区的范围:
```
var selection = window.getSelection();
var range = selection.getRangeAt(0);
```
然后在更改 `innerHTML` 属性之后,将选区设置回去:
```
selection.removeAllRanges();
selection.addRange(range);
```
这样就可以保持光标位置不变了。如果光标位置仍然不正确,那么可能是因为某些样式或其他因素导致的。此时,可以尝试使用调试工具查看元素的样式和属性,以确定问题的原因。
阅读全文