补充一句,
var offset = src.document.selection.createRange();
 var oSel = document.selection.createRange();这两行代码中,src.document与document一样。但是取最终的offset和oSel不一样。。太奇怪饿了 。。

解决方案 »

  1.   

    也许LZ这个函数是从别的地方移植过来的吧?
    比如HTC中
    document != event.srcElement.document
      

  2.   

    显然不一样,两个createRange产生不同的TextRange
      

  3.   

    俺的结论也是没有区别!alert(src.document === document); // true
      

  4.   

    这里应该没什么区别吧.src.document就是得到src所在的document对象.
    最终的offset和oSel不一样是很正常的,虽然
    offset和oSel是对同一选择区域createRange,但创建的是两个对象,所以不一样.
    看空上例子就知道了.
    <script type="text/javascript">
    <!--
    var str = "1";
    alert((new Array(str))==(new Array(str)))
    //-->
    </script>