日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
技術(shù)分享Javascript如何獲取textarea中光標(biāo)位置

這里和大家分享一下如何用Javascript獲取textarea中的光標(biāo)位置,相信本文介紹一定會(huì)讓你有所收獲的。

創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站制作、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的南昌網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

用Javascript獲取textarea中的光標(biāo)位置

Javascript一向以他的靈活隨意而著稱(chēng),這也使得它的功能可以非常的強(qiáng)大,而由于沒(méi)有比較好的調(diào)試工具,又使得它使用起來(lái)困難重重,尤其使對(duì)于一些初學(xué)者,更是感覺(jué)到無(wú)從下手。今天探討的問(wèn)題是用javascript獲取textarea中光標(biāo)的位置。對(duì)于寫(xiě)javascript寫(xiě)網(wǎng)頁(yè)編輯器的人來(lái)說(shuō),獲取textarea中的光標(biāo)位置是一個(gè)非常重要的問(wèn)題,而往往很多人在這個(gè)地方不知所措,找不到好的辦法。昨天我在網(wǎng)上找到了一段javascript代碼,本來(lái)不想把原版放在這里的,就是因?yàn)樘柿?,怕我給改壞了,所以還是原版放在這里吧。

 
 
 
  1. varstart=0;  
  2. varend=0;  
  3. functionadd(){  
  4. vartextBox=document.getElementById("ta");  
  5. varpre=textBox.value.substr(0,start);  
  6. varpost=textBox.value.substr(end);  
  7. textBox.value=pre+document.
  8. getElementById("inputtext").value+post;  
  9. }  
  10. functionsavePos(textBox){  
  11. //如果是Firefox(1.5)的話,方法很簡(jiǎn)單  
  12. if(typeof(textBox.selectionStart)=="number"){  
  13. start=textBox.selectionStart;  
  14. end=textBox.selectionEnd;  
  15. }  
  16. //下面是IE(6.0)的方法,麻煩得很,還要計(jì)算上'\n'  
  17. elseif(document.selection){  
  18. varrange=document.selection.createRange();  
  19. if(range.parentElement().id==textBox.id){  
  20. //createaselectionofthewholetextarea  
  21. varrange_all=document.body.createTextRange();  
  22. range_all.moveToElementText(textBox);  
  23. //兩個(gè)range,一個(gè)是已經(jīng)選擇的text(range),  
  24. 一個(gè)是整個(gè)textarea(range_all)  
  25. //range_all.compareEndPoints()比較兩個(gè)端點(diǎn),  
  26. 如果range_all比range更往左(furthertotheleft),  
  27. 則//返回小于0的值,則range_all往右移一點(diǎn),直到兩個(gè)range的start相同。  
  28. //calculateselectionstartpointbymoving
  29. beginningofrange_alltobeginningofrange  
  30. for(start=0;range_all.compareEndPoints
  31. ("StartToStart",range)<0;start++)range_all.moveStart('character',1);  
  32. //getnumberoflinebreaksfromtextareastarttose
  33. lectionstartandaddthemtostart  
  34. //計(jì)算一下\n  
  35. for(vari=0;i<=start;i++){  
  36. if(textBox.value.charAt(i)=='\n')  
  37. start++;  
  38. }  
  39. //createaselectionofthewholetextarea  
  40. varrange_all=document.body.createTextRange();  
  41. range_all.moveToElementText(textBox);  
  42. //calculateselectionendpointbymovingbeginningofrange_alltoendofrange  
  43. for(end=0;range_all.compareEndPoints('StartToEnd',range)<0;end++)  
  44. range_all.moveStart('character',1);  
  45. //getnumberoflinebreaksfromtextareastarttoselectionendandaddthemtoend  
  46. for(vari=0;i<=end;i++){  
  47. if(textBox.value.charAt(i)=='\n')  
  48. end++;  
  49. }  
  50. }  
  51. }  
  52. document.getElementById("start").value=start;  
  53. document.getElementById("end").value=end;  
  54. }  
  55.  

 下面是在頁(yè)面中調(diào)用js代碼的方法:

 
 
 
  1.  
  2. cellspacing="0"cellpadding="0"> 
  3.  
  4. start:
  5. id="start"size="3"/> 
  6. end:
  7. id="end"size="3"/> 
  8.  
  9.  
  10.  
  11. onKeyup="savePos(this)" 
  12. onmousedown="savePos(this)" 
  13. onmouseup="savePos(this)" 
  14. onfocus="savePos(this)" 
  15. rows="14"cols="50"> 
  16.  
  17.  
  18.  
  19. id="inputtext"/> 
  20. onClick="add()"value="AddText"/> 
  21.  
  22.  
  23.  

網(wǎng)站名稱(chēng):技術(shù)分享Javascript如何獲取textarea中光標(biāo)位置
鏈接URL:http://www.dlmjj.cn/article/cosihhs.html