try the following:<HTML>
<HEAD>
<SCRIPT>
function storeCaret (txtobj) 
{
  if (txtobj.createTextRange)
    txtobj.curRange = document.selection.createRange().duplicate();
}function insertAtCaret (txtobj, txt) 
{
  if (txtobj.curRange) 
  {
    txtobj.curRange.text = txt;
    txtobj.curRange.select();
  }
  else
  {
    txtobj.focus();
    storeCaret(txtobj);
    insertAtCaret (txtobj, txt);
  }
}
</SCRIPT>
</HEAD>
<BODY>
<FORM><TEXTAREA NAME="txt2" ROWS="5" COLS="40" WRAP="off"
          ONSELECT="storeCaret(this);" 
          ONCLICK="storeCaret(this);"
          ONKEYUP="storeCaret(this);">abcdefg</TEXTAREA><BR>
<INPUT TYPE="text" NAME="txt1" VALUE="123456"><BR>
<INPUT TYPE="button" VALUE="insert text" ONCLICK="insertAtCaret(this.form.txt2, this.form.txt1.value);">
<BR></FORM>
</BODY>
</HTML>

解决方案 »

  1.   

    hehe, range是很讨厌的东西,因为还没有被标准化,错了,实际上已经有DOM 2标准了,其中有Range的,但是IE到目前为止还没有实现DOM 2,只实现了DOM 1。Mozilla基本实现了DOM 2,但是对于Range,好像开发者还在讨论。应该Mozilla的C的底层已经实现了,但他们好像还在研究在JavaScript上的model,因为搞不好就变得很复杂,这样就违背了script语言是要给非专业编程者使用的目标乐。个人认为range虽然是功能很强大的东西(可以用来做WYSIWYG的编辑器),但是目前还是不要用吧。等Mozilla实现了DOM 2标准中Range以及IE的下一个(或者再下一个?)版本的Range模型兼容DOM 2标准,再使用吧!
      

  2.   

    疑惑:为什么不行?
    有一个文本框 。。
    <form name=cform>
    <textarea name=ntxt>
    </textarea>
    </form>有一个按钮<input type=button value=加文字 onclick=go()> <script>
    function go(){
    document.cform.ntxt.focus();
    document.selection.createRange().text+="加文字"
    }
    </script>
      

  3.   

    <SCRIPT>
    function storeCaret (txtobj) 
    {
      if (txtobj.createTextRange)
        txtobj.curRange = document.selection.createRange().duplicate();
    }function insertAtCaret (txtobj, txt) 
    {
      if (txtobj.curRange) 
      {
        txtobj.curRange.text = txt;
        txtobj.curRange.select();
      }
      else
      {
        txtobj.focus();
        storeCaret(txtobj);
        insertAtCaret (txtobj, txt);
      }
    }
    </SCRIPT>谁 能 讲讲两个函数的具体是怎么回事,各自什么作用啊?