您的位置:首页 > 其它

将鼠标焦点定位到文本框最后

2014-03-03 21:06 246 查看
  在Firefox, Chrome浏览器中,如果我们想要选取一段文本框中的内容,我们可以使用setSelectionRange(startIndex, endIndex)方法。

  但在IE8其更早版本中,这个方法是不支持的,一般我们使用范围选择部分文本。要选择文本框中的部分文本,必须首先使用IE 在所有文本框上提供的createTextRange()方法创建一个范围,并将其放在恰当的位置上。然后,再使用moveStart()和moveEnd()这两个范围方法将范围移动到位。不过,在调用这两个方法以前,还必须使用collapse()将范围折叠到文本框的开始位置。此时,moveStart()将范围的起点和终点移动到了相同的位置,只要再给moveEnd()传入要选择的字符总数即可。最后一步,就是使用范围的select()方法选择文本。

例如有这么一个文本框:

<textarea id="text">sssssssssssse  aaaa</textarea>


其样式如下:

textarea {
width: 200px;
height: 200px;
}
textarea:focus {
border: 2px red solid;
}


如果想选择文本框中的第3个到第10个字符之前的文本,可以采用如下方法:

function selectText(selector, startIndex, endIndex) {
var value = selector.value;
if(selector.setSelectionRange) {
selector.setSelectionRange(startIndex - 1, endIndex); //Chrome, Firefox
} else {
//IE8
var range = selector.createTextRange();
range.collapse(true);
range.moveStart("character", startIndex - 1);
range.moveEnd("character", endIndex - startIndex + 1);
range.select();
}
}
var obj = document.getElementById('text');
selectText(obj, 3, 10);


如果想把鼠标焦点移到最后,可以采用方法如下:

function moveToEnd(selector) {
var value = selector.value;
if(selector.setSelectionRange) {
selector.setSelectionRange(value.length, value.length); //Chrome, Firefox
} else {
//IE8
var range = selector.createTextRange();
range.collapse(true);
range.moveStart("character", value.length);
range.moveEnd("character", 0);
range.select();
}
}
var obj = document.getElementById('text');
moveToEnd(obj);
selectText(obj, 3, 10);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: