插入前: 插入后: 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(); } } 相应的HTML: [html] view plain copy <textarea id="textarea" style="width: 386px; height: 260px"> </textarea> <input type="text" id="text" /> <input type="button" value="插入" οnclick="insertAtCursor(document.getElementById('textarea'),document.getElementById('text').value)" /> 原文是菜鸟JS上的,找了很久,很实用的一个小功能 来自: 风之殇z5ogyvwv > 《程序》