光标的一些操作总结

IE下的Range操作比Mozilla下强很多,这里只讨论IE下的操作。
这里选介绍几个光标定位的特点:
1.光标不变

    直接obj.focus(),光标会返回之前的位置,即位置不变
    
2.光标在最前

    var r = obj.createTextRange();
    r.collapse();
    r.select();
    用这个方法可以使光标在input框最前面

3.光标在最后

    var r = obj.createTextRange();
    r.collapse(false);
    r.select();
    用这个方法可以使光标停在input框的最后
    
4.选取input框中部分内容需要用到Range的moveStart或moveEnd方法, 其详细的方法使用可以参考MSDN.

<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)">



5.再引申一下光标的移动和位置,这个是有人经常问到的问题 <input name=a value="123456789">
<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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值