function getPos(obj){
obj.focus();
var s=document.selection.createRange();
s.setEndPoint("EndToStart",obj.createTextRange())
alert(s.text.length);
}
</script>
大概意思我明白,谁能给我注释一下吗?谢谢
2 个解决方案
#1
先假设obj是一个文本框,它的值是:123456789,并且用光标选中了789(也可以不选择,将光标放在6和7之间),这时来调用这个方法.
// 设置焦点,这样访问文档当前选中区域时,指向文本框.
obj.focus();
// 要对选中的文本区域进行操作,要选创建TextRange对象
// 现在s=789
var s=document.selection.createRange();
// 更改文本块的终了点.在更改前,S的起始点是7-9
// 现在将终止点改成整个文本框文本的起始点,也就是1
// 改变后,S的范围是0-7,实现了文本选中区域的改变,改成从文本框的开头,直到原来选中区域的开始处.
s.setEndPoint("EndToStart",obj.createTextRange())
// 这时s=123456,报出来的长度,就是选中区域的开始位置.
alert(s.text.length);
// 设置焦点,这样访问文档当前选中区域时,指向文本框.
obj.focus();
// 要对选中的文本区域进行操作,要选创建TextRange对象
// 现在s=789
var s=document.selection.createRange();
// 更改文本块的终了点.在更改前,S的起始点是7-9
// 现在将终止点改成整个文本框文本的起始点,也就是1
// 改变后,S的范围是0-7,实现了文本选中区域的改变,改成从文本框的开头,直到原来选中区域的开始处.
s.setEndPoint("EndToStart",obj.createTextRange())
// 这时s=123456,报出来的长度,就是选中区域的开始位置.
alert(s.text.length);
#2
这个函数是不是不能用在textarea只能用在单行文本框上的??????????
#1
先假设obj是一个文本框,它的值是:123456789,并且用光标选中了789(也可以不选择,将光标放在6和7之间),这时来调用这个方法.
// 设置焦点,这样访问文档当前选中区域时,指向文本框.
obj.focus();
// 要对选中的文本区域进行操作,要选创建TextRange对象
// 现在s=789
var s=document.selection.createRange();
// 更改文本块的终了点.在更改前,S的起始点是7-9
// 现在将终止点改成整个文本框文本的起始点,也就是1
// 改变后,S的范围是0-7,实现了文本选中区域的改变,改成从文本框的开头,直到原来选中区域的开始处.
s.setEndPoint("EndToStart",obj.createTextRange())
// 这时s=123456,报出来的长度,就是选中区域的开始位置.
alert(s.text.length);
// 设置焦点,这样访问文档当前选中区域时,指向文本框.
obj.focus();
// 要对选中的文本区域进行操作,要选创建TextRange对象
// 现在s=789
var s=document.selection.createRange();
// 更改文本块的终了点.在更改前,S的起始点是7-9
// 现在将终止点改成整个文本框文本的起始点,也就是1
// 改变后,S的范围是0-7,实现了文本选中区域的改变,改成从文本框的开头,直到原来选中区域的开始处.
s.setEndPoint("EndToStart",obj.createTextRange())
// 这时s=123456,报出来的长度,就是选中区域的开始位置.
alert(s.text.length);
#2
这个函数是不是不能用在textarea只能用在单行文本框上的??????????