IE6中关于文本框中的光标位置与选中区

Tiger Soldier 发表于 2008-04-01 11:32:09

在FireFox下,要获取一个文本框的光标位置,可以通过获取它的选择起点和终点解决:当没有选中文字时,selectionStart和selectionEnd均等于文本框的光标位置;有选中文字时,seletionStart和selectionEnd的含义与它们名字的字面含义相同。

但是IE6里没有提供这两个属性,只能通过它的TextRange对象来曲线解决:
var expobj = document.getElementById("aTextbox");
if (document.selection){               //IE
  expobj.focus();
  sel = document.selection.createRange();
  ……
}
通过document.selection.createRange(),可以返回当前文档选中部分的TextRange对象。为了防止操作到文档的其他选中区域,要首先把焦点转给要操作的文本框。
之后就可以通过更改sel来操作选中的文本,包括改变文字什么的。
要获得选中区在文本框的位置,要用曲线点的方法:把选中区开头移动到文本框的最前端,然后选中区文本的长度就是选中区末端在文本框中的位置了:
sel.moveStart("character",-expobj.value.length);
pos = sel.text.length;
同理可得选中开头处的位置。
使用sel.select()可以令改动后的选择范围生效。


收藏: QQ书签 del.icio.us 订阅: Google 抓虾

最新评论

发表评论

* 昵称

已经注册过? 请登录

新用户请先注册 以便能显示头像及追踪评论回复

Email
网址
* 评论
表情
 
 

分类小组论坛
杂谈, 娱乐、八卦, 文学、艺术, 体育, 旅游、同城, 象牙塔, 情感, 时尚、生活, 星座, 科技

请注意遵守中华人民共和国法律法规, 如威胁到本站生存, 将依法向有关部门报告, 同时本站的相关记录可能成为对您不利的证据.

相关法律法规
全国人大常委会关于维护互联网安全的决定
中华人民共和国计算机信息系统安全保护条例
中华人民共和国计算机信息网络国际联网管理暂行规定
计算机信息网络国际联网安全保护管理办法
计算机信息系统国际联网保密管理规定