[js] 获取文本域光标位置,插入文本

Posted on 2021-09-14 15:56  Hhcxgd  阅读(260)  评论(0编辑  收藏  举报

 

 

  html deml

<textarea id="textarea" style="width: 386px; height: 260px">  </textarea>  
<input type="text"  id="text"  />  
<input type="button" value="insert" onclick="insertAtCursor(document.getElementById('textarea'),document.getElementById('text').value);" />  

  

Js
function insertAtCursor(myField, myValue) {  
  
 //IE 浏览器  
 if (document.selection) {  
     myField.focus();  
     sel = document.selection.createRange();  
     sel.text = myValue;  
     sel.select();  
 }  
  
 //FireFox、Chrome等  
 else if (myField.selectionStart || myField.selectionStart == '0') {  
     var startPos = myField.selectionStart;  
     var endPos = myField.selectionEnd;  
  
     // 保存滚动条  
     var restoreTop = myField.scrollTop;  
     myField.value = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length);  
       
     if (restoreTop > 0) {  
        myField.scrollTop = restoreTop;  
     }  
       
     myField.focus();  
     myField.selectionStart = startPos + myValue.length;  
     myField.selectionEnd = startPos + myValue.length;  
 } else {  
     myField.value += myValue;  
     myField.focus();  
 }  
}