<textarea id="ice" rows="5" cols="50" onclick="Select(this)">
111111111111111111
222222222222222222
333333333333333333
444444444444444444
</textarea>
<input type="button" value="选 择" onclick="sel()"/>
<script language="javascript">
<!--
var isSelected = false;
var ice=document.getElementById("ice");
function Select( obj )
{
obj.CurPos = document.selection.createRange().duplicate();
isSelected = true;
}
function sel(){

if( isSelected && ice.CurPos)
{
ice.CurPos.expand("word");
ice.CurPos.select();
}
}
//-->
</script>

解决方案 »

  1.   

    CurPos这个属性我怎么没有查到呢?能否给个出处,谢谢啊!!
      

  2.   

    没有,是自定义的,你换成其它的也可以,只不过要保存一下range对象
      

  3.   

    这种方法有问题,如一行中有空格的话就不能选中整行的字符,只能选中一个单词word.  
    <textarea id="ice" rows="5" cols="50" onclick="Select(this)">
    1111111 111 11 111111
    222222 2222 22222 222
    33333 3 33 333 3333 333
    444 44444444 4444 444
    </textarea>
      

  4.   

    try<SCRIPT LANGUAGE="JavaScript">function doSelect() 
    {
    demo.focus();
    var r;
    var t = document.body.createTextRange();
    var s = document.body.createTextRange();
    var h = document.selection.createRange().boundingTop;
    t.moveToElementText(demo);
    r = t.getClientRects();
    for (var i = 0; i < r.length; i++) 
    if (r[i].top >= h) break;
    s.moveToPoint(r[i].left, r[i].top);
    t.setEndPoint("StartToStart", s);
    s.moveToPoint(r[i].left, r[i].bottom);
    t.setEndPoint("EndToEnd", s);
    t.select();
    }</SCRIPT>
    <textarea id="demo" rows="10" cols="20">
    11111 11111 11111 11111
    22222 22222 22222 22222
    33333 33333 33333 33333
    </textarea>
    <button onclick="doSelect()">Select</button>
      

  5.   

    To: fason(咖啡人生) 这样做发现有bug:
    当scrollbar下拉的时候,便发现选择不了该行了。请问如何解决?
      

  6.   

    function cc()
    {
    var e=even.srcElement;
    var r=e.createTextRange();
    r.moveStart("character",e.value.length);
    r.collapse(true);
    r.select();
    }
    <textarea id="demo" rows="10" cols="20" onclick='cc()'>
    11111 11111 11111 11111
    22222 22222 22222 22222
    33333 33333 33333 33333
    </textarea>
      

  7.   

    <SCRIPT LANGUAGE="JavaScript">function doSelect()
    {
    demo.focus();
    var r;
    var t = document.body.createTextRange();
    var s = document.body.createTextRange();
    var h = document.selection.createRange().boundingTop + demo.scrollTop;
    t.moveToElementText(demo);
    r = t.getClientRects();
    for (var i = 0; i < r.length; i++)
    if (r[i].top >= h) break;
    s.moveToPoint(r[i].left, r[i].top);
    t.setEndPoint("StartToStart", s);
    s.moveToPoint(r[i].left, r[i].bottom);
    t.setEndPoint("EndToEnd", s);
    t.select();
    }</SCRIPT>
    <textarea id="demo" rows="4" cols="50">
    11111 11111 11111 11111
    22222 22222 22222 22222
    33333 33333 33333 33333
    44444 44444 44444 44444
    55555 55555 55555 55555
    66666 66666 66666 66666
    77777 77777 77777 77777
    88888 88888 88888 88888
    99999 99999 99999 99999
    </textarea>
    <button onclick="doSelect()">Select</button>
      

  8.   

    ========================================
    http://peipei3000.jishuqi.com/reg.asp
    http://www.goofar.com/?ID=634664011139
    ========================================
      

  9.   

    下面代码是从网上看到的,全部保存后存为htm即可运行:
    ---------------<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <title>光标位置</title>
    <style>
    INPUT{border: 1 solid #000000}
    BODY,TABLE{font-size: 10pt}
    </style>
    </head>
    <body>
    <table border="0" width="700" cellspacing="0" cellpadding="0">
    <tr>
    <td width="479" rowspan="7">
    点击 TextArea 实现光标定位
    <p>
    <textarea rows="7" cols="49" id="box" onclick=tellPoint()>我怕来不及我要抱着你,直到感觉你的绉纹有了岁月的痕迹,直到视线变得模糊直到不能呼吸
    为了你我愿意
    动也不能动也要看着你,直到感觉你的发线有了白雪的痕迹,直到肯定你是真的直到失去力气让我们形影不离
    如果全世界我也可以放弃,至少还有你值得我去珍惜而你在这里就是生命的奇迹
    也许全世界我也可以忘记,就是不愿意失去你的消息你掌心的痣我总记得在哪里
    我们好不容易我们身不由已,我怕时间太快不够将你看仔细,我怕时间太慢日夜担心失去你恨不得一夜之间白头永不分离
    </textarea><script>function movePoint()
    {
    var pn = parseInt(pnum.value);if(isNaN(pn))
    return;var rng = box.createTextRange();rng.moveStart("character",pn);rng.collapse(true);rng.select();returnCase(rng)}function tellPoint()
    {
    var rng = event.srcElement.createTextRange();rng.moveToPoint(event.x,event.y);
    rng.moveStart("character",-1)
    rng.moveEnd("character",1)
    rng.select()
    pnum.value = rng.text.lengthreturnCase(rng)
    }
    function returnCase(rng)
    {
    bh.innerText = rng.boundingHeight;
    bl.innerText = rng.boundingLeft;
    bt.innerText = rng.boundingTop;
    bw.innerText = rng.boundingWidth;
    ot.innerText = rng.offsetTop;
    ol.innerText = rng.offsetLeft;
    t.innerText = rng.text;
    }
    function selectText(sp,ep)
    {
    sp = parseInt(sp)
    ep = parseInt(ep)if(isNaN(sp)||isNaN(ep))
    return;var rng = box.createTextRange();rng.moveEnd("character",-box.value.length)
    rng.moveStart("character",-box.value.length)rng.collapse(true);rng.moveEnd("character",ep)
    rng.moveStart("character",sp)rng.select();returnCase(rng);
    }var rg = box.createTextRange();function findText(tw)
    {
    if(tw=="")
    return;var sw = 0;if(document.selection)
    {
    sw = document.selection.createRange().text.length;
    }rg.moveEnd("character",box.value.length);rg.moveStart("character",sw);
    if(rg.findText(tw))
    {
    rg.select();returnCase(rg);
    }if(rg.text!=tw)
    {
    alert("已经搜索完了")
    rg = box.createTextRange()
    }}</script>
    </p>
    <p></p>
    光标位置:<input type="text" value="0" id="pnum" size="8"> <input type="button" onclick="movePoint()" value="移动光标到指定位置">
    <p></p>
    选择指定范围:<input type="text" size="9" id="sbox"> -- <input type="text" size="9" id="ebox"> <input type="button" onclick="selectText(sbox.value,ebox.value)" value="选择">
    <p></p>
    选择查找字符 :<input type="text" value="" id="cbox" size="8"> <input type="button" onclick="findText(cbox.value)" value="查找下一个并选择"></td>
    <td width="217">boundingHeight:&nbsp;<span id="bh"></span></td>
    </tr>
    <tr>
    <td width="217">boundingWidth:&nbsp;<span id="bw"></span></td>
    </tr>
    <tr>
    <td width="217">boundingTop:&nbsp;<span id="bt"></span></td>
    </tr>
    <tr>
    <td width="217">boundingLeft:&nbsp;<span id="bl"></span></td>
    </tr>
    <tr>
    <td width="217">offsetLeft:&nbsp;<span id="ol"></span> </td>
    </tr>
    <tr>
    <td width="217">offsetTop:&nbsp;<span id="ot"></span> </td>
    </tr>
    <tr>
    <td width="217">text:&nbsp;<span style="position: absolute; z-index: 10" id="t"></span> </td>
    </tr>
    </table>
    </body></html>