想制作类似新浪微博和腾讯微博的那种效果在输入框中输入一段文字后,将鼠标指针移动到某个文字之后点击表情插入按钮在该位置插入表情但是需要获得鼠标指针在textarea中的索引值请教如何获得鼠标指针在textarea框中的位置谢谢

解决方案 »

  1.   

    <html>
    <head><script type="text/javascript">
      function   InsertText(obj,charvalue)   
      {          
              obj.focus();  
              var leng=obj.value.length;    if(typeof document.selection !="undefined")   //ie
        {
            var r =document.selection.createRange();   
            r.text   =   charvalue;   
        }
        else                                       //firefox
        {
            obj.value=obj.value.substr(0,obj.selectionStart)+ charvalue +obj.value.substring(obj.selectionStart,leng);
        }      
      }     </script>   </head>
    <body>

     <input   type="button"   value="按钮"   onclick="InsertText(x,'aa')" /><br />  
     <textarea   id="x"   rows="4"   cols="50">   
       光标位置插入字符光标位置插入字符光标位置插入字符光标位置插入字符光标位置插入字符   
       </textarea>   </body>
    </html>
      

  2.   


    这个代码在其他浏览器,结果都能实现所需效果,但在ie下当在页面其他地方点一下后再点击button,内容就插在输入框的最前面了,并没有插入到之前鼠标在输入框中的位置不知道怎么解决
      

  3.   

    IE哪个版本 我刚测了 IE8可以用
      

  4.   

    用IETester模拟的IE5.5/6/7/8 均正常
      

  5.   


    ie中当在页面其他地方点一下,再点击button就把aa插入到textarea框最前面了我用的是  ie9
      

  6.   

    IE中现象正常,要防止因此而无法连续多重操作的话,可以在其它对象的点击事件中保存一下document.getElementById("TEXTAREA对象的ID").selectionStart,它就是当前TEXTAREA中的光标位置。然后每次操作时引用这个变量进行截取拼接就可以了。
      

  7.   


    不行的,查了下,ie不支持selectionStart