<textarea id=demo>abcdef</textarea>
<input type=button onclick=check(demo) value=textarea>
<script>
function check(obj){
obj.focus();
var rng=document.selection.createRange();
rng.moveEnd("character",1);
if(rng.htmlText==rng.text)
alert("文本之间")
else
alert("文本最后")
}
</script>

解决方案 »

  1.   

    <input value=0123456789 id="txt1">
    <input type="button" value="get caret position" onclick="getCaretPos(txt1)">
    <script language="javascript">
    function getCaretPos(obj)
    {
     obj.focus();
     var currentRange=document.selection.createRange();
     var workRange=currentRange.duplicate();
     obj.select();
     var allRange=document.selection.createRange(); var len=0;
     while(workRange.compareEndPoints("StartToStart",allRange)>0)
     {
      workRange.moveStart("character",-1);
      len++;
      } currentRange.select() alert(len);
     if (len >= obj.value.length)
      alert("at the end");
     else if (len == 0)
      alert("at the start");
     else
      alert("in the middle");
    }
    </script>
      

  2.   

    临时修改如下<input value=0123456789 id="txt1">
    <input type="button" value="get caret position" onclick="getCaretPos(txt1)">
    <script language="javascript">
    function getCaretPos(obj){
     obj.focus();
     var workRange=document.selection.createRange();
     var allRange=obj.createTextRange();
     workRange.setEndPoint("StartToStart",allRange);
     len=workRange.text.length;
     if (len >= obj.value.length)
      alert("at the end");
     else if (len == 0)
      alert("at the start");
     else
      alert("in the middle");
    }
    </script>