如何获得光标在textarea 光标位置中的坐标

您所在的位置: &
技术分享 Javascript如何获取textarea中光标位置
技术分享 Javascript如何获取textarea中光标位置
你对使用Javascript获取textarea中的光标位置是否了解,这里和大家分享一下,Javascript一向以他的灵活随意而著称,这也使得它的功能可以非常的强大。
这里和大家分享一下如何用Javascript获取textarea中的光标位置,相信本文介绍一定会让你有所收获的。
用Javascript获取textarea中的光标位置
Javascript一向以他的灵活随意而著称,这也使得它的功能可以非常的强大,而由于没有比较好的调试工具,又使得它使用起来困难重重,尤其使对于一些初学者,更是感觉到无从下手。今天探讨的问题是用javascript获取textarea中光标的位置。对于写javascript写网页编辑器的人来说,获取textarea中的光标位置是一个非常重要的问题,而往往很多人在这个地方不知所措,找不到好的办法。昨天我在网上找到了一段javascript代码,本来不想把原版放在这里的,就是因为太精彩了,怕我给改坏了,所以还是原版放在这里吧。
varstart=0; &varend=0; &functionadd(){ &vartextBox=document.getElementById(&ta&); &varpre=textBox.value.substr(0,start); &varpost=textBox.value.substr(end); &textBox.value=pre+document.getElementById(&inputtext&).value+ &} &functionsavePos(textBox){ &//如果是Firefox(1.5)的话,方法很简单 &if(typeof(textBox.selectionStart)==&number&){ &start=textBox.selectionS &end=textBox.selectionE &} &//下面是IE(6.0)的方法,麻烦得很,还要计算上'\n' &elseif(document.selection){ &varrange=document.selection.createRange(); &if(range.parentElement().id==textBox.id){ &//createaselectionofthewholetextarea &varrange_all=document.body.createTextRange(); &range_all.moveToElementText(textBox); &//两个range,一个是已经选择的text(range), &一个是整个textarea(range_all) &//pareEndPoints()比较两个端点, &如果range_all比range更往左(furthertotheleft), &则//返回小于0的值,则range_all往右移一点,直到两个range的start相同。 &//calculateselectionstartpointbymovingbeginningofrange_alltobeginningofrange &for(start=0;pareEndPoints(&StartToStart&,range);start++)range_all.moveStart('character',1); &//getnumberoflinebreaksfromtextareastarttoselectionstartandaddthemtostart &//计算一下\n &for(vari=0;i=i++){ &if(textBox.value.charAt(i)=='\n') &start++; &} &//createaselectionofthewholetextarea &varrange_all=document.body.createTextRange(); &range_all.moveToElementText(textBox); &//calculateselectionendpointbymovingbeginningofrange_alltoendofrange &for(end=0;pareEndPoints('StartToEnd',range);end++) &range_all.moveStart('character',1); &//getnumberoflinebreaksfromtextareastarttoselectionendandaddthemtoend &for(vari=0;i=i++){ &if(textBox.value.charAt(i)=='\n') &end++; &} &} &} &document.getElementById(&start&).value=start; &document.getElementById(&end&).value=end; &} &&
下面是在页面中调用js代码的方法:
formaction=&a.cgi&&tableborder=&1&cellspacing=&0&cellpadding=&0&&&start:inputtype=&text&id=&start&size=&3&&end:inputtype=&text&id=&end&size=&3&&&&tdcolspan=&2&&textareaid=&ta&onKeydown=&savePos(this)& &onKeyup=&savePos(this)&&onmousedown=&savePos(this)&&onmouseup=&savePos(this)&&onfocus=&savePos(this)&&rows=&14&cols=&50&&&&&inputtype=&text&id=&inputtext&&inputtype=&button&onClick=&add()&value=&AddText&&&&&
【编辑推荐】
【责任编辑: TEL:(010)】
关于&&的更多文章
又是一周匆匆而过。上周五、周六两天,2013年51CTO云计算架构师
随着云计算、物联网、大数据、移动互联网的大发展,你应该知道这些。
在过去的近十年的时间里,面向对象编程大行其道。以至
很久很久以前,冬天爱上了夏天,可是他们始终不能相见
流火过,金秋来,在学校开学之前的最后一周,终于凉快
本书是Inside Microsoft SQL Server 2005系列四本著作中的一本。它详细介绍了T-SQL的内部构造,包含了非常全面的编程参考。它提
51CTO旗下网站java怎么获取textarea中光标的位置_java吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:605,477贴子:
java怎么获取textarea中光标的位置收藏
并以坐标形式显示出来?
点击赢取你的第二台手机—魅蓝 E2
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或推荐这篇日记的豆列
······

我要回帖

更多关于 textarea定位光标位置 的文章

 

随机推荐