成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

技術分享 Javascript如何獲取textarea中光標位置

開發 前端
你對使用Javascript獲取textarea中的光標位置是否了解,這里和大家分享一下,Javascript一向以他的靈活隨意而著稱,這也使得它的功能可以非常的強大。

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

用Javascript獲取textarea中的光標位置

Javascript一向以他的靈活隨意而著稱,這也使得它的功能可以非常的強大,而由于沒有比較好的調試工具,又使得它使用起來困難重重,尤其使對于一些初學者,更是感覺到無從下手。今天探討的問題是用javascript獲取textarea中光標的位置。對于寫javascript寫網頁編輯器的人來說,獲取textarea中的光標位置是一個非常重要的問題,而往往很多人在這個地方不知所措,找不到好的辦法。昨天我在網上找到了一段javascript代碼,本來不想把原版放在這里的,就是因為太精彩了,怕我給改壞了,所以還是原版放在這里吧。

  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)的話,方法很簡單  
  12. if(typeof(textBox.selectionStart)=="number"){  
  13. start=textBox.selectionStart;  
  14. end=textBox.selectionEnd;  
  15. }  
  16. //下面是IE(6.0)的方法,麻煩得很,還要計算上'\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. //兩個range,一個是已經選擇的text(range),  
  24. 一個是整個textarea(range_all)  
  25. //range_all.compareEndPoints()比較兩個端點,  
  26. 如果range_all比range更往左(furthertotheleft),  
  27. 則//返回小于0的值,則range_all往右移一點,直到兩個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. //計算一下\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.  

 下面是在頁面中調用js代碼的方法:

  1. <formactionformaction="a.cgi"> 
  2. <tablebordertableborder="1"
  3. cellspacing="0"cellpadding="0"> 
  4. <tr> 
  5. <td>start:<inputtypeinputtype="text"
  6. id="start"size="3"/></td> 
  7. <td>end:<inputtypeinputtype="text"
  8. id="end"size="3"/></td> 
  9. </tr> 
  10. <tr> 
  11. <tdcolspantdcolspan="2"> 
  12. <textareaidtextareaid="ta"onKeydown="savePos(this)"  
  13. onKeyup="savePos(this)" 
  14. onmousedown="savePos(this)" 
  15. onmouseup="savePos(this)" 
  16. onfocus="savePos(this)" 
  17. rows="14"cols="50"></textarea> 
  18. </td> 
  19. </tr> 
  20. <tr> 
  21. <td><inputtypeinputtype="text"
  22. id="inputtext"/></td> 
  23. <td><inputtypeinputtype="button"
  24. onClick="add()"value="AddText"/></td> 
  25. </tr> 
  26. </table> 
  27. </form> 

【編輯推薦】

  1. Javascript解決瀏覽器兼容問題12個技巧
  2. JS中Array數組的三大屬性用法揭秘
  3. 解析Javascript對select下拉列表操作
  4. 技術分享 如何識別控制DHTML和JS中的頁面元素
  5. 深入學習JavaScript中Function對象語法 

 

責任編輯:佚名 來源: jb51.net
相關推薦

2010-09-28 13:50:20

2011-05-25 14:34:26

javascript

2011-07-08 09:07:11

JavaScript

2010-07-30 10:37:23

Flex數據綁定

2010-09-30 15:24:31

滾動條Javascript

2010-07-28 12:41:18

Flex組件

2010-07-15 15:21:07

Perl線程

2010-06-02 16:09:05

SVN協議

2023-01-18 10:41:43

JavaScrip獲取網絡數據

2022-11-29 08:07:23

CSSJavaScript自定義

2010-08-02 15:26:27

FlexBuilder

2013-08-06 15:16:27

技術人創業開發者創業移動互聯網創業

2018-08-08 14:55:32

KVM虛擬化取證

2011-06-10 15:39:47

外鏈

2010-06-01 18:49:19

刪除SVN備份

2010-05-26 15:39:36

SVN服務

2023-04-26 15:19:36

JavaScripMap數組

2010-10-09 10:56:50

DHTMLJS

2010-09-09 11:03:32

CSS樣式

2010-05-31 20:07:31

SVN版本控制插件
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久精品99国产精品日本 | 久久久久久天堂 | 国产精品久久久久久久久久久免费看 | 国产精品视频一二三区 | 日本中文在线 | 国产欧美精品一区二区三区 | 一区二区电影网 | 国产在线精品一区二区三区 | 亚洲精品欧洲 | 亚洲毛片在线观看 | 成人性视频免费网站 | 成人深夜福利 | 国内精品一区二区三区 | 亚洲精品黄 | 国产成人在线看 | 国产亚洲精品一区二区三区 | 北条麻妃99精品青青久久主播 | 欧美男人天堂 | 亚洲国产一区二区在线 | 日韩免费av | 精品99久久久久久 | 国产偷录视频叫床高潮对白 | 日韩在线综合 | 三级特黄特色视频 | 精品久久久久久亚洲综合网 | 一级毛片免费视频观看 | 国产成人一区二区 | 亚洲另类视频 | 91精品国产综合久久精品 | 亚洲视频在线观看 | 午夜影院免费体验区 | 亚洲成人免费视频在线观看 | 一区二区三区四区国产 | 正在播放国产精品 | 中文字幕在线观看国产 | 久久福利电影 | 欧洲免费视频 | 亚洲天堂中文字幕 | 欧美精品久久久久久久久老牛影院 | 国产精品一区二区三区久久 | 国产精品自拍视频 |