光標在input中的定位

[size=medium]IE下的Range操作比Mozilla下強很多,這裏只討論IE下的操作。
這裏選介紹幾個光標定位的特點:
[b]1.光標不變 [/b]
直接obj.focus(),光標會返回之前的位置,即位置不變
[b]2.光標在最前 [/b]
var r = obj.createTextRange();
r.collapse();
r.select();
用這個方法可以使光標在input框最前面
[b]3.光標在最後 [/b]var r = obj.createTextRange();
r.collapse(false);
r.select();
用這個方法可以使光標停在input框的最後
[b]4.選取input框中部分內容需要用到Range的moveStart或moveEnd方法, 其詳細的方法使用可以參考MSDN. [/b]
<script type="text/javascript">
function sl(o, m, n){
var rt = o.createTextRange();
rt.collapse();
rt.select();//光標置最前
var r = document.selection.createRange();
r.collapse(false);
r.moveStart("character", m);//從m位開始
r.moveEnd("character", n);//選取n位
r.select();
}
</script>
<input name="a" value="123456789"><input type=button value="select" οnclick="sl(a,2,4)">

[b]5.再引申一下光標的移動和位置,這個是有人經常問到的問題 <input name=a value="123456789">[/b]
<input type=button value="向前" οnclick="setpos(a,-1)">
<input type=button value="向後" οnclick="setpos(a,1)">
<input type=button value="當前光標的位置" οnclick="getpos(a)">
<script type="text/javascript">
function setpos(obj,n)
{
obj.focus();
var r = document.selection.createRange();
r.collapse(false);
r.move("character", n);
r.select();
};
function getpos(obj)
{
obj.focus();//光標位置不變
var r = document.selection.createRange();
r.collapse(false);
r.setEndPoint("StartToStart", obj.createTextRange());
alert(r.text.length);
};
</script> [/size]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章