JS在文本域光标位置插入文本

  1. 插入前:

    插入后:

  2.  
  3.  
  4. function insertAtCursor(myField, myValue) {  
  5.   
  6.  //IE 浏览器  
  7.  if (document.selection) {  
  8.      myField.focus();  
  9.      sel = document.selection.createRange();  
  10.      sel.text = myValue;  
  11.      sel.select();  
  12.  }  
  13.   
  14.  //FireFox、Chrome等  
  15.  else if (myField.selectionStart || myField.selectionStart == '0') {  
  16.      var startPos = myField.selectionStart;  
  17.      var endPos = myField.selectionEnd;  
  18.   
  19.      // 保存滚动条  
  20.      var restoreTop = myField.scrollTop;  
  21.      myField.value = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length);  
  22.        
  23.      if (restoreTop > 0) {  
  24.         myField.scrollTop = restoreTop;  
  25.      }  
  26.        
  27.      myField.focus();  
  28.      myField.selectionStart = startPos + myValue.length;  
  29.      myField.selectionEnd = startPos + myValue.length;  
  30.  } else {  
  31.      myField.value += myValue;  
  32.      myField.focus();  
  33.  }  
  34. }  

相应的HTML:

[html] view plain copy

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

原文是菜鸟JS上的,找了很久,很实用的一个小功能

来自: 风之殇z5ogyvwv > 《程序》

猜你喜欢

转载自blog.csdn.net/u014516261/article/details/90071892