试了 下 
 document.getElementsByName("cmt")[0].value += text;
这个永远都是加在后面
有点恼火

解决方案 »

  1.   


    那么有什么别的写法么?
    只要能达成添加到 textarea 这个操作, 怎样都行啦.
      

  2.   

    要得到textarea的当前光标位置
      

  3.   

    <script type="text/javascript">
        function getCursor(param1,param2)
        {
         var pos = 0;     
         var t = document.getElementById(param1);
         if(document.selection )
         { 
          t.focus();
          var rng = document.selection.createRange();
          rng.setEndPoint("EndToStart", t.createTextRange());
          pos = rng.text.length;
         }
         else if(t.selectionStart)
         {
          pos = t.selectionStart;
         }
         document.getElementById(param2).value = pos;
        }
     </script>
    找到猎人 http://blog.csdn.net/net_lover/archive/2008/05/25/2480585.aspx
      

  4.   


    /*
       兼容ie,ff
    */
    <script   type="text/javascript">   
      function   setCaret   (textObj)   {   
      if   (textObj.createTextRange)   {   
      textObj.caretPos   =   document.selection.createRange().duplicate();   
      }   
      }   
      function   insertAtCaret   (textObj,   textFeildValue)   {   
      if(document.all){     
      if   (textObj.createTextRange   &&   textObj.caretPos)   {   
      var   caretPos   =   textObj.caretPos;   
      caretPos.text   =   caretPos.text.charAt(caretPos.text.length   -   1)   ==   '   '   ?textFeildValue   +   '   '   :   textFeildValue;   
      }else{   
      textObj.value   =   textFeildValue;   
      }   
      }else{   
      if(textObj.setSelectionRange){   
      var   rangeStart   =   textObj.selectionStart;   
      var   rangeEnd   =   textObj.selectionEnd;   
      var   tempStr1   =   textObj.value.substring(0,rangeStart);   
      var   tempStr2   =   textObj.value.substring(rangeEnd);   
      textObj.value   =   tempStr1   +   textFeildValue   +   tempStr2;   
      }else{   
      alert("This   version   of   Mozilla   based   browser   does   not   support   setSelectionRange");   
      }   
      }   
      }   
        
      </script>   
        
      <form   id="form1"   action=""   onsubmit=""   method="post"   enctype="text/plain">     
      <p>   
      <textarea   name="tarea"   rows=""   cols=""   style="width:300px;height:120px;"   
      onselect="setCaret(this);"   
      onclick="setCaret(this);"   
      onkeyup="setCaret(this);"   >例子例子例子例子例子</textarea>   
      <br/><br/>   
      <input   type="text"   name="textfield"   style="width:220px;"   value="插入FireFox"/>   
      <br/>   
      <input   type="button"   value="插入"   
      onclick="insertAtCaret(this.form.tarea,'[face:01]');"/>   
      </p>     </form>  
      

  5.   

    學習...
    s_liangchao1s真厲害
    有點難懂
      

  6.   

    <img src="xxx.gif" onclick="addSmilie('[face:01]')" /><textarea id="comment" name="cmt"></textarea><script type="text/javascript">
    function addSmilie(str) {
    var obj=document.getElementById('comment')
    obj.focus();
    var txtobj=obj.document.selection.createRange()  txtobj.text==""?txtobj.text=str:(IframeID.document.selection.clear())&(txtobj.text=str) 
    obj.document.selection.createRange().select() }
    </script>
      

  7.   

    沒定義到IframeID
    var   IframeID=document.getElementById("comment")
    你的寫法更牛,學習