日期:2014-05-16  浏览次数:20448 次

有两行代码很奇怪,看不懂
问题在代码的注释中
页面上定义的一个div元素
<div   id= "editbox "   class= "editbox "   style= "width:99%;height:80%; "   contentEditable= "true "   onkeyDown= "return   KeyDown() "   onkeyUp= "KeyUp() "   onclick= "getCursorPosition() ">

script中的getCursorPosition函数

function   getCursorPosition()
{
  var   src   =   event.srcElement;

  var   offset   =   src.document.selection.createRange();
  var   oSel   =   document.selection.createRange();
  //我通过alert比较src.document和doucment是一样的,为什么他要这么写,有什么  
  //特殊的含义么?
  var   textLength   =   src.innerText.length;
  //此后略去
 
}

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