本帖最后由 mp3aaa 于 2009-11-19 18:07:24 编辑

解决方案 »

  1.   

    http://blog.csdn.net/xiaofan_sap/archive/2009/11/17/4819423.aspx
      

  2.   

    我在网上找了一个 
    <FORM> 
    <TEXTAREA NAME="a" ONSELECT="this.pos=document.selection.createRange();" onCLICK="this.pos=document.selection.createRange();" onKEYUP="this.pos=document.selection.createRange();">1234567</TEXTAREA>
    <INPUT TYPE="button" VALUE="插!" onCLICK="try{this.form.a.pos.text='插!';}catch(e){}"> 
    </FORM>
    这个代码只能 在IE下成功运行 没法再FF下 
      

  3.   

    刚写了一个,看看是楼主要求的吧<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="">
    <META NAME="Keywords" CONTENT="">
    <META NAME="Description" CONTENT="">
    <script language="javascript"> var clone ;
    var isFocus = false ;
    function getFocus(obj){
    var sel=document.selection.createRange(); 
        clone = sel.duplicate();
    //设置头位置(头等于obj的TextRange的头,尾等于obj的TextRange的尾)
    clone.moveToElementText(obj);    clone.setEndPoint('EndToEnd', sel);//设置尾位置,些时的clone不能由
    //return clone.text.length ;//光标前文本的长度
    }
    function getBefore() //得到光标前的文本

    return clone.text}  
    function getLast() //得到光标后的文本

        var m=clone.text.length;//当前光标所在位置
    clone.moveStart('character',m);//移动开始点,-m标示当前光标位置前面m个字符处
        clone.moveEnd('character',aa.value.length);//移动结束点,0标示当前光标位置
        clone.select();//选中开始点到结束点间的字符
    return document.selection.createRange().text ;} function insert(str){
    if(clone == null) return ;
    document.getElementById("aa").value = getBefore() + str + getLast() ;
    clone = null ;
    }
    </script> 
    </HEAD><BODY><textarea id="aa" type=text onclick=getFocus(this) rows=10 cols=50>
    场研究公司comScore最新发布的数据显示,微软在美国搜索市场的份额已接近10%,而雅虎搜索的份额逐月下降。谷歌搜索份额继续增长。
    </textarea>
    <br>
    <input type="button" value="插入【ADD】" onclick="insert('ADD')">
    </BODY>
    </HTML>
      

  4.   

    var isFocus = false ;
    上面这句忘了删除啦,~~~
      

  5.   

    但是在FF下不可以哎 
    只能在IE下 插入
      

  6.   

    这样就可以了,代码有点乱哦,呵呵<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="">
    <META NAME="Keywords" CONTENT="">
    <META NAME="Description" CONTENT="">
    <script language="javascript"> var clone ;function getFocus(obj){
    if(document.all){  var sel=document.selection.createRange();  clone = sel.duplicate();
    //设置头位置(头等于obj的TextRange的头,尾等于obj的TextRange的尾)
    clone.moveToElementText(obj); clone.setEndPoint('EndToEnd', sel);//设置尾位置,些时的clone不能由
    //return clone.text.length ;//光标前文本的长度
    }
    }
    function getBefore() //得到光标前的文本

        return clone.text}  
    function getLast() //得到光标后的文本

        var m=clone.text.length;//当前光标所在位置
        clone.moveStart('character',m);//移动开始点,-m标示当前光标位置前面m个字符处
        clone.moveEnd('character',aa.value.length);//移动结束点,0标示当前光标位置
        clone.select();//选中开始点到结束点间的字符
        return document.selection.createRange().text ;} function insert(id,str){
    if(document.all){
    alert(clone == null) ;
    if(clone == null) return ;
    document.getElementById("aa").value = getBefore() + str + getLast() ;
    clone = null ;
    alert(clone == null) ;
    }else{
    var obj = document.getElementById(id) ;
    var scrollTop = obj.scrollTop; // 滚动的位置
    var start = obj.selectionStart; // 当前光标所在位置 var pre = obj.value.substr(0, obj.selectionStart); // 光标之前的内容
    var next = obj.value.substr(obj.selectionEnd); // 光标之后的内容 document.getElementById("aa").value = pre + str + next ;
    }
        
    }
    </script> 
    </HEAD><BODY><textarea id="aa" type=text onfocus="getFocus(this)" rows=10 cols=50>
    场研究公司comScore最新发布的数据显示,微软在美国搜索市场的份额已接近10%,而雅虎搜索的份额逐月下降。谷歌搜索份额继续增长。
    </textarea>
    <br>
    <input type="button" value="插入【ADD】" onclick="insert('aa','ADD')">
    </BODY>
    </HTML>