input、textarea、div(contenteditable=true)光标定位到最后
1、针对input、textarea
//定位input、textarea
function po_Last(obj) {
obj.focus();//解决ff不获取焦点无法定位问题
if (window.getSelection) {//ie11 10 9 ff safari
var max_Len=obj.value.length;//text字符数
obj.setSelectionRange(max_Len, max_Len);
}
else if (document.selection) {//ie10 9 8 7 6 5
var range = obj.createTextRange();//创建range
range.collapse(false);//光标移至最后
range.select();//避免产生空格
}
}
2、针对div(contenteditable="true")
//定位div(contenteditable = "true")
function po_Last_Div(obj) {
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();
}
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>div contenteditable光标测试</title>
<style type="text/css">
.div{ width:600px; height:200px; border:1px solid #CCC}
</style>
<script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(e) {
$('.aclick').click(function(){
$('.div').html("回复[潇sdfsdfssssssssssssssdfsdf潇]:");
$('.div').focus();
po_Last_Div($('.div').get(0));
})
});
function po_Last_Div(obj) {
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();
}
}
</script>
</head>
<body>
<input type="text">
<div class="aclick">回复潇潇</div>
<div class="div" contenteditable="true">
</div>
</body>
</html>

浙公网安备 33010602011771号