html5中contenteditable 光标_如何设置光标位置 最后更新时间:2024年03月14日 ### 本文来源 [html5中contenteditable 光标_如何设置光标位置](https://www.cnblogs.com/ypppt/p/13055552.html "html5中contenteditable 光标_如何设置光标位置") ### 正文 在js中,光标是一个对象,当你选中某个元素的时候才会出现光标对象。比如:我们点击一个输入框,实际会产生一个选中对象-selection,这个对象我们可以通过indow.getSelection()来获取;selection只存在1个,所以当你切换到其他输入框额时候,selection同样会跟着变化的。在选中的情况下有一个光标叫做range,和selection一样。 在contenteditable 属性中,当点击该区域的时候,光标默认显示在区域内容最后一位。如: ```html 这是内容哦! ``` 需要点击才出现光标,而且它的位置在内容区域的最后面,如果我们需要打开页面默认就出现,而且出现在第一个位置上,该如何实现呢?下面将给出js的实现方法: 方法一: ```html var p = document.getElementById('box'), s = window.getSelection(), r = document.createRange(); r.setStart(p, 0); r.setEnd(p, 0); s.removeAllRanges(); s.addRange(r); ``` 如果你需要把元素清空,或者对应内容为空的时候,你可以这样做: ```html var p = document.getElementById('box'), s = window.getSelection(), r = document.createRange(); p.innerHTML = '\u00a0'; r.selectNodeContents(p); s.removeAllRanges(); s.addRange(r); document.execCommand('delete', false, null); ``` 方法二: ```html var box= document.getElementById('box'); setTimeout(function() { box.focus(); }, 0); ``` 给box设置获取焦点。然后放置setTimeout中,延迟执行。
Comments | NOTHING