请帮忙看一下下面的代码,我只看懂是禁用和启用文本框,但不知其中几句的意思,如:为什么要用if判断这句
if (document.all || document.getElementById) 
    field.disabled = true;
还有 field.oldOnFocus = field.onfocus;是什么意思,
请大家帮忙看一下<HTML>
<SCRIPT language="JavaScript">
function skip () { 
 this.blur(); 
}function disableTextField (field) {
  if (document.all || document.getElementById) 
    field.disabled = true;
  else {
    field.oldOnFocus = field.onfocus;
    field.onfocus = skip;
  }
}function enableTextField (field) {
  if (document.all || document.getElementById)
    field.disabled = false;
  else {
    field.onfocus = field.oldOnFocus;
  }
}
</SCRIPT>
<BODY>
<FORM name="aForm">
 <INPUT type="text" name="aField" value="Kibology">
 <A href="javascript:enableTextField(document.aForm.aField)">Select Hi!
</A>
| <A href="javascript:disableTextField(document.aForm.aField)">Bye!</A>
</BODY>
</HTML>

解决方案 »

  1.   

    if (document.all || document.getElementById) 
        field.disabled = true; 是判断浏览器的类型的。document.all是IE专用属性,其他浏览器支持document.getElementById
     field.oldOnFocus = field.onfocus;
    不太明白,估计可能是兼容浏览器的的代码,oldOnFocus字面意思像是以前获得过焦点
      

  2.   

    个人觉得:
    if (document.all || document.getElementById) 
        //如果浏览器是ie或者当前主流的支持document.getElementById的浏览器
        field.disabled = true; 
        //让输入框disable掉
      else {  
        /*
         *  显然,这个是一个特殊的不支持document.all 也不支持document.getElementById。
          * 上网查了下,还没找到这是什么浏览器
          */
        field.oldOnFocus = field.onfocus; 
        field.onfocus = skip; 
        //这两句是针对这个特殊浏览器,让输入框不可见的吧?
        //下面刚好在网上看到:
        /*
         * onfocuse="this.blur()"
        * onfocuse是聚焦的意思,当你把光标放在文本框上输入的时候,就是聚焦
         * 但这里添加了"this.blur()",blur的作用就是去除聚焦,也就是你不能把光标放在这个文本框上
         * 换句话说就是你不能输入文本了
         */
      }