可编辑的div在粘贴内容后,让光标定位在文本的最后

可编辑的div在粘贴内容后,光标会在文本的最前面,通过下面代码实现让光标始终定位在文本的最后。

代码如下:
html:

1
2
3
4
5
<div id="editable" contenteditable="true">

text text text<br>text text text<br>text text text<br>

</div>

js:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
keepInLast()
{
var obj = document.getElementById('chatTextDiv')
if (window.getSelection) {//ie11 10 9 ff safari
obj.focus(); //解决ff不获取焦点无法定位问题
var range = window.getSelection();//创建range
range.selectAllChildren(obj);//range 选择obj下所有子内容
range.collapseToEnd();//光标移至最后
}
else if (document.selection) {//ie10 9 8 7 6 5
var range = document.selection.createRange();//创建选择对象
//var range = document.body.createTextRange();
range.moveToElementText(obj);//range定位到obj
range.collapse(false);//光标移至最后
range.select();
}
}

亲测有效,记录一下