中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Javascript中怎么利用textarea獲取光標位置

發布時間:2021-07-02 14:23:23 來源:億速云 閱讀:686 作者:Leah 欄目:web開發

本篇文章為大家展示了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+post;  }  functionsavePos(textBox){  //如果是Firefox(1.5)的話,方法很簡單  if(typeof(textBox.selectionStart)=="number"){  start=textBox.selectionStart;  end=textBox.selectionEnd;  }  //下面是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)  //range_all.compareEndPoints()比較兩個端點,  如果range_all比range更往左(furthertotheleft),  則//返回小于0的值,則range_all往右移一點,直到兩個range的start相同。  //calculateselectionstartpointbymovingbeginningofrange_alltobeginningofrange  for(start=0;range_all.compareEndPoints("StartToStart",range)<0;start++)range_all.moveStart('character',1);  //getnumberoflinebreaksfromtextareastarttoselectionstartandaddthemtostart  //計算一下\n  for(vari=0;i<=start;i++){  if(textBox.value.charAt(i)=='\n')  start++;  }  //createaselectionofthewholetextarea  varrange_all=document.body.createTextRange();  range_all.moveToElementText(textBox);  //calculateselectionendpointbymovingbeginningofrange_alltoendofrange  for(end=0;range_all.compareEndPoints('StartToEnd',range)<0;end++)  range_all.moveStart('character',1);  //getnumberoflinebreaksfromtextareastarttoselectionendandaddthemtoend  for(vari=0;i<=end;i++){  if(textBox.value.charAt(i)=='\n')  end++;  }  }  }  document.getElementById("start").value=start;  document.getElementById("end").value=end;  }

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

<formactionformaction="a.cgi"> <tablebordertableborder="1"cellspacing="0"cellpadding="0"> <tr> <td>start:<inputtypeinputtype="text"id="start"size="3"/></td> <td>end:<inputtypeinputtype="text"id="end"size="3"/></td> </tr> <tr> <tdcolspantdcolspan="2"> <textareaidtextareaid="ta"onKeydown="savePos(this)"  onKeyup="savePos(this)" onmousedown="savePos(this)" onmouseup="savePos(this)" onfocus="savePos(this)" rows="14"cols="50"></textarea> </td> </tr> <tr> <td><inputtypeinputtype="text"id="inputtext"/></td> <td><inputtypeinputtype="button"onClick="add()"value="AddText"/></td> </tr> </table> </form>

上述內容就是Javascript中怎么利用textarea獲取光標位置,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沈丘县| 本溪市| 石门县| 枣庄市| 团风县| 通河县| 平山县| 临泽县| 东乡县| 扎赉特旗| 金塔县| 武夷山市| 南开区| 万安县| 鄂温| 武平县| 从江县| 富川| 扎兰屯市| 巴彦县| 宁都县| 明溪县| 临高县| 原平市| 大庆市| 霍州市| 鄂托克旗| 隆化县| 丰宁| 台山市| 新建县| 乌海市| 泾川县| 通江县| 长丰县| 手游| 监利县| 宁城县| 华容县| 靖江市| 屏山县|