例如,在textbox中输入字符串“123456789123456789”,通过鼠标选择第一次出现的“23”这个字符串,如何得到第一次出现的“23”这个字符串在“123456789123456789”整个字符串的位置。

解决方案 »

  1.   

    var str = "123456789123456789";
                var atChar = str.indexOf("23");
                alert(atChar);
      

  2.   

    看来我没说明白。
    想想看,如果我是选择第二次出现的"23"呢?
    也就是说我不能确定具体会选择哪一部分。用document.selection.createTextRange()能得到所选定的文本,但不知道如何得知所选文本在整个文本中的位置
      

  3.   

    <body>
    <input type="text" id="t" onselect="os(event)"/>
    <script language="javascript">
    os = function(event){
    event = event || window.event;
    var which = event.currentTarget ||  event.srcElement;
    var sv = which.value.substring(which.selectionEnd,which.selectionStart); 
    alert( which.value.indexOf(sv) );
    }
    </script>
    </body>
      

  4.   

    selectionEnd,selectionStart是IE9才有的。不过找到解决之道http://www.code-design.cn/article/20110611/javascript-input-selectionstart.aspx
      

  5.   

    ie?一般只用来登录网银和一些zf网站