collapse([bStart])
移动Range的插入点
bStart true(移到开头) false(移到末尾)findText(sText [, iSearchScope] [, iFlags])
在Range中查找sText
iSearchScope 开始位置,负数方向搜索
iFlags 2(整词匹配) 4(区别大小写)moveStart(sUnit [, iCount])
moveEnd(sUnit [, iCount])
移动Range的开头或结尾
sUnit character(字) word(词) sentence(句) textedit(Range)
iCount 移动数量,默认为1moveToPoint(iX, iY)
移动光标到坐标(iX,iY)pasteHTML(sHTMLText)
替换Range中的htmlscrollIntoView([bAlignToTop])
滚动使之在当前窗口显示
bAlignToTop true(Range在窗口开头) false(Range在窗口底部)select()
选中Range 
设置光标:
<textarea id=demo cols=50 rows=5>关于光标定位的补充.abcdefghijklmnopqrstuvwxyz</textarea>
<br><input type=checkbox id=collapse>倒数 第<input id=s value=4 size=4>位 <input value="设置光标" type=button onclick=setCursor()>
<script>
function setCursor(){
var num=parseInt(document.all.s.value)
range=document.all.demo.createTextRange(); 
if(document.all.collapse.checked){
range.collapse(false); 
range.moveEnd('character',-1*num); 
}else{
range.collapse(true); 
range.moveStart('character',-1+num); 
}
range.select();
}
</script>
设置文本选择:
<div id=demo>关于光标定位的补充.abcdefghijklmnopqrstuvwxyz</div>
<br>从正数<input id=b value=4 size=4> 到 倒数第<input id=s value=4 size=4>位 <input value="设置文本选择" type=button onclick=setSelect()>
<script>
function setSelect(){var range = document.body.createTextRange();
range.moveToElementText(demo)
range.moveEnd('character',-1*parseInt(document.all.s.value)); 
range.moveStart('character',-1+parseInt(document.all.b.value)); 
range.select();
}
</script>

解决方案 »

  1.   

    取得当前坐标系列1:
    <textarea id=show rows=10 cols=100>
    先将光标置在这里任意处,然后点击按钮,看光标变化
    </textarea>
    <br><input type=button value=取得当前坐标 onclick='window.status=GetCursorPos()'>
    <script>
    function GetCursorPos(oTextArea) 

    s="~!@#$%^";
    clipboardData.setData('text',s); 
    show.focus(); 
    document.execCommand('paste'); 
    var arr=show.value.split(s); 
    show.value=arr[1];
    show.document.selection.empty();
    show.document.selection.createRange().select();
    show.focus();
    clipboardData.setData('text',arr[0]); 
    document.execCommand('paste'); 
    return arr[0].length; 
    }
    </script>
    取得当前坐标系列2
    <textarea rows=10 cols=100 onclick="getCursorPosition()">
    北京时间10月6日,世界三大通讯社之一的法新社刊发图文报道,中国国脚孙继海因为在最近的世界杯预选赛中的表现,已经吸引了意大利俱乐部AC米兰和都灵队的争购。中国队只需在10月7日同阿曼队的比赛中战平就将首次进入世界杯决赛圈。图为孙继海(右)1998年12月19日在亚洲杯上的资料图片。</textarea>
    <script language=JScript>
    function getCursorPosition(){
    var src = event.srcElement
    var oTR = src.createTextRange()
    var textLength = src.innerText.length
    var line, char, total, cl
    oTR.moveToPoint(window.event.x, window.event.y)
    oTR.moveStart("character", -1*textLength)
    cl = oTR.getClientRects()
    line = cl.length
    total = oTR.text.length
    oTR.moveToPoint(cl[cl.length-1].left-2, cl[cl.length-1].top-2)
    oTR.moveStart("character", -1*textLength)
    char = total - oTR.text.length
    window.status = "行: " + line +", 列: " + char + ", 第 " + total + " 个字符"
    }
    </SCRIPT>
    取得当前坐标系列3
    <textarea rows=20 cols=80 id=show>
    Alpha 滤镜 : 线形 <img src=images/ad.gif style='filter: Alpha(opacity=100,finishopacity=0,style=1,startx=0,starty=0,finishx=468,finishy=60)'><br>
    Alpha 滤镜 :放射状<img src=images/ad.gif style='filter: Alpha(opacity=100,finishopacity=0,style=2,startx=0,starty=0,finishx=468,finishy=60)'><br>
    Alpha 滤镜 :长方形<img src=images/ad.gif style='filter: Alpha(opacity=100,finishopacity=0,style=3,startx=0,starty=0,finishx=468,finishy=60)'><br>
    <img src=images/ad.gif style='filter:blur(add=ture,direction=135,strength=100)'><br>
    <img src=images/ad.gif style='filter:filph'><br>
    <img src=images/ad.gif style='filter:filpv'><br>
    <img src=images/ad.gif style='filter:chroma(color=white)'><br>
    <p style='filter:Dropshadow(color=#ff0080,offx=5,offy=5.positive=0)'>样式表滤镜实例</p><br>
    <img src=images/ad.gif style='filter:glow(color=blue,strength=10)'><br>
    <img src=images/ad.gif style='filter:gray'><br>
    <img src=images/ad.gif style='filter:invert'><br>
    <img src=images/ad.gif style='filter:xray'><br>
    <img src=images/ad.gif style='filter:light'><br>
    <img src=images/ad.gif style='filter:mask(color=white)'><br>
    <img src=images/ad.gif style='filter:shadow(color=red,direction=225)'><br>
    <img src=images/ad.gif style='filter:wave(add=add,freq=2,lightstrength=50,phase=45,strength=10)'><br>
    <img src=images/ad.gif style='filter:wave(add=add,freq=2,lightstrength=30,phase=50,strength=5)'><br>
    <img src=images/ad.gif style='filter:wave(add=add,freq=2,lightstrength=90,phase=25,strength=5)'><br>
    <img src=images/ad.gif style=''><br>
    </textarea>
    <input type=button value=运行代码 onclick=window.open().document.writeln(show.value)>
    <input type=button value=取得当前坐标 onclick='window.status=GetCursorPos(show)'>
    <script>
    function GetCursorPos(oTextArea) 

    s="~!@#$%^";
    clipboardData.setData('text',s); 
    oTextArea.focus(); 
    document.execCommand('paste'); 
    var ret=oTextArea.value.indexOf(s); 
    document.execCommand('undo'); 
    return ret; 
    }
    </script>
      

  2.   

    取得当前坐标系列4
    <textarea id=demo cols=50>
    中文abcdefghijklmnopqrstuvwxyz
    </textarea>
    <br><input type=button onclick=get(demo) value=get>
    <script>
    function get(oTextarea){
    var qswh="@#%#^&#*$"
    oTextarea.focus();
    rng=document.selection.createRange();
    rng.text=qswh;
    var tmp=oTextarea.value.indexOf(qswh)
    rng.moveStart("character", -qswh.length)
    rng.text="";
    alert(tmp);
    }
    </script>
     取得当前坐标系列5
    <textarea rows=10 cols=100 onclick="getCursorPosition()" onkeyup="getCursorPosition()">
    北京时间10月6日,世界三大通讯社之一的法新社刊发图文报道,中国国脚孙继海因为在最近的世界杯预选赛中的表现,已经吸引了意大利俱乐部AC米兰和都灵队的争购。中国队只需在10月7日同阿曼队的比赛中战平就将首次进入世界杯决赛圈。图为孙继海(右)1998年12月19日在亚洲杯上的资料图片。</textarea>
    <script language=JScript>
    function getCursorPosition(){
    var src = event.srcElement
    var oTR = src.createTextRange()
    var oSel = document.selection.createRange()
    var textLength = src.innerText.length
    var line, char, total, cl
    oTR.moveToPoint(oSel.offsetLeft, oSel.offsetTop)
    oTR.moveStart("character", -1*textLength)
    cl = oTR.getClientRects()
    line = cl.length
    total = oTR.text.length
    oTR.moveToPoint(cl[cl.length-1].left, cl[cl.length-1].top)
    oTR.moveStart("character", -1*textLength)
    char = total - oTR.text.length
    if (oSel.offsetTop != cl[cl.length-1].top) {line++; char = 0}
    else if (src.createTextRange().text.substr(oTR.text.length, 2) == "\r\n") char -= 2
    window.status = "行: " + line +", 列: " + char + ", 第 " + total + " 个字符"
    }
    </SCRIPT>
    取得当前坐标系列6
    <textarea id=demo cols=50>
    中文abcdefghijklmnopqrstuvwxyz</textarea>
    <br><input type=button value=getPos onclick=getPos(demo)>
    <script>
    function getPos(obj){
    obj.focus();ml=obj.value.length;l=0;
    rng=document.selection.createRange();
    rng.moveEnd("character",ml);
    try{l=ml-rng.htmlText.match(/>((.|\n)+)<\/textarea>/i)[1].length}catch(e){}
    alert(l)
    }
    </script>
      

  3.   

     <body>
     <input type=button value ="select"  onclick=selectInPage("员工") >
     shyslysky不是员工,而是老板!
     </body>
     
     <script language="JavaScript">
    function selectInPage(str) {
     txt =document.body.createTextRange();
     if(txt.findText(str)) 
        {
          txt.moveStart("character", 0);
          txt.moveEnd("textedit");
          txt.select();
          txt.scrollIntoView();
        }
          else
            alert("Not found.");
     }
    </script>