现在的位置: 首页 > 综合 > 正文

JS。某 IE 的光标处理。

2013年06月02日 ⁄ 综合 ⁄ 共 1116字 ⁄ 字号 评论关闭

IE下关于 Range 的处理。

1.光标不变 

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

2.光标在最前
var r = document.body.createTextRange();
r.collapse(true);
r.select();

3.光标在最后
var r = document.body.createTextRange();
r.collapse(false);
r.select();

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" onclick="sl(a,2,4)">

5.光标的移动和位置

<input name=a value="123456789">
<input type=button value="向前" onclick="setpos(a,-1)">
<input type=button value="向后" onclick="setpos(a,1)">
<input type=button value="当前光标的位置" onclick="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>

抱歉!评论已关闭.