<HTML>  
<HEAD>  
<SCRIPT>  
function  setCaretAtEnd(field){  
document.getElementById(field).focus();
var a=document.getElementById(field);
a.document.selection.createRange().text+=document.getElementById('userName').value;
}  
</SCRIPT>  
</HEAD>  
<BODY>  
<textarea id="a" cols="" rows="">初始文字</textarea>
<INPUT  TYPE="text"  NAME="userName" id="userName"  VALUE="插入的文字">  
<INPUT  TYPE="button"  VALUE="插入"  ONclick="setCaretAtEnd('a')">  
</BODY>  
</HTML>或者用pasteHTML();也能实现

解决方案 »

  1.   

    <HTML>
    <HEAD>
    <SCRIPT>
    function storeCaret(textEl)
    {
    if(textEl.createTextRange)
    textEl.caretPos = document.selection.createRange().duplicate();
    }
    function insertAtCaret(textEl,text){
    if(textEl.createTextRange && textEl.caretPos){
    var caretPos = textEl.caretPos;
    caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == '' ? text + '' : text;
    }
    else
    textEl.value  = text;
    }
    </SCRIPT>
    </HEAD>
    <BODY>
    <FORM NAME="aForm">
    <INPUT  NAME="aTextArea" ONSELECT="storeCaret(this);" ONCLICK="storeCaret(this);" ONKEYUP="storeCaret(this);" value="ABCDE">
    <BR>
    <INPUT TYPE="text" NAME="aText" SIZE="80" VALUE="H">
    <BR>
    <INPUT TYPE="button" VALUE="在光标处插入" ONCLICK="insertAtCaret(this.form.aTextArea,this.form.aText.value);">
    </FORM>
    </BODY>
    </HTML>