CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  JavaScript

浏览器总是提示变量未定义

楼主csongqi()2005-09-12 16:15:51 在 Web 开发 / JavaScript 提问

代码大致如下:  
  <SCRIPT   LANGUAGE="JavaScript">    
  function   FillSubject(subjectInfo,selSubject)  
  {  
  count=0;  
  for(i=0;i<subjectInfo.length;i++)  
  {  
  selSubject.options[count]=new   Option(subjectInfo[i][1],subjectInfo[i][0]);  
  count=count+1;  
  }  
  selSubject.options[0].selected=true;  
  selSubject.length=count;  
  }  
   
  function   _CloseOnEsc()   {  
      if   (event.keyCode   ==   27)   {   window.close();   return;   }  
     
  }  
   
   
   
  function   Init()   {  
       
      //   event   handlers  
      document.body.onkeypress   =   _CloseOnEsc;  
      btnOK.onclick   =   new   Function("btnOKClick()");  
       
  }  
   
  function   btnOKClick()   {  
       
      var   result;  
      //   error   checking  
   
      if   (!coefficient.value)   {  
          alert("请正确填写系数");  
          coefficient.focus();  
          return;  
      }  
       
      result   =   "+subject_"+subject_id.value+"|"+month.value+"|"+coefficient;  
       
      result.collapse(false);  
      result.select();  
      window.close();  
  }  
  </script>  
  </HEAD>  
   
  <BODY   id=bdy   style="BACKGROUND:   buttonface;   COLOR:   windowtext"   scroll=no   onload=Init()>  
  ....  
  <BUTTON   id=btnOK   style="LEFT:   31.36em;   WIDTH:   5em;   TOP:   1.06em;   HEIGHT:   1.5em"   tabIndex=40   type=submit>  
              确定  
          </BUTTON>  
   
  运行的时候浏览器就提示  
  btnOK未定义,但btnOK在“<BUTTON   id=btnOK”   定义了。代码哪里有问题呢 问题点数:20、回复次数:6Top

1 楼csongqi()回复于 2005-09-12 16:16:56 得分 0

这个是一个showModalDialog打开的页面Top

2 楼gu1dai(异域苍穹.百年飞行)回复于 2005-09-12 16:54:56 得分 0

btnOK在函数之后定义,所以错误。  
   
  请用document.getElementById('btnOK');取得对象,就不会错了。Top

3 楼gu1dai(异域苍穹.百年飞行)回复于 2005-09-12 16:57:23 得分 0

btnOK   =   document.getElementById('btnOK');  
  btnOK.onclick   =   new   Function("btnOKClick()");Top

4 楼csongqi()回复于 2005-09-12 17:07:06 得分 0

这个问题解决了,十分感谢。还想问一个问题:如何将showModalDialog的变量回传给母窗口?Top

5 楼csongqi()回复于 2005-09-12 17:11:01 得分 0

我这个代码出处是:  
  <SCRIPT   defer>  
   
  function   _CloseOnEsc()   {  
      if   (event.keyCode   ==   27)   {   window.close();   return;   }  
  }  
   
  function   _getTextRange(elm)   {  
      var   r   =   elm.parentTextEdit.createTextRange();  
      r.moveToElementText(elm);  
      return   r;  
  }  
   
   
   
  function   HandleError(message,   url,   line)   {  
      var   str   =   "An   error   has   occurred   in   this   dialog."   +   "\n\n"  
      +   "Error:   "   +   line   +   "\n"   +   message;  
      alert(str);  
      window.close();  
      return   true;  
  }  
   
  function   Init()   {  
      var   elmSelectedImage;  
      var   htmlSelectionControl   =   "Control";  
      var   globalDoc   =   window.dialogArguments;  
      //var   grngMaster   =   globalDoc.selection.createRange();  
   
      //   event   handlers  
      document.body.onkeypress   =   _CloseOnEsc;  
      btnOK.onclick   =   new   Function("btnOKClick()");  
   
      txtFileName.fImageLoaded   =   false;  
      txtFileName.intImageWidth   =   0;  
      txtFileName.intImageHeight   =   0;  
   
      if   (globalDoc.selection.type   ==   htmlSelectionControl)   {  
          if   (grngMaster.length   ==   1)   {  
              elmSelectedImage   =   grngMaster.item(0);  
              if   (elmSelectedImage.tagName   ==   "IMG")   {  
                  txtFileName.fImageLoaded   =   true;  
                  if   (elmSelectedImage.src)   {  
                      txtFileName.value                     =   elmSelectedImage.src.replace(/^[^*]*(\*\*\*)/,   "$1");     //   fix   placeholder   src   values   that   editor   converted   to   abs   paths  
                      txtFileName.intImageHeight   =   elmSelectedImage.height;  
                      txtFileName.intImageWidth     =   elmSelectedImage.width;  
                      txtVertical.value                     =   elmSelectedImage.vspace;  
                      txtHorizontal.value                 =   elmSelectedImage.hspace;  
                      txtBorder.value                         =   elmSelectedImage.border;  
                      txtAltText.value                       =   elmSelectedImage.alt;  
                      selAlignment.value                   =   elmSelectedImage.align;  
                  }  
              }  
          }  
      }  
      txtFileName.value   =   txtFileName.value   ||   "http://";  
      txtFileName.focus();  
  }  
   
  function   _isValidNumber(txtBox)   {  
      var   val   =   parseInt(txtBox);  
      if   (isNaN(val)   ||   val   <   0   ||   val   >   999)   {   return   false;   }  
      return   true;  
  }  
   
  function   btnOKClick()   {  
      var   elmImage;  
      var   intAlignment;  
      var   htmlSelectionControl   =   "Control";  
      var   globalDoc   =   window.dialogArguments;  
      var   grngMaster   =   globalDoc.selection.createRange();  
   
      //   error   checking  
   
      if   (!txtFileName.value   ||   txtFileName.value   ==   "http://")   {  
          alert("图像连接不能为空");  
          txtFileName.focus();  
          return;  
      }  
      if   (txtHorizontal.value   &&   !_isValidNumber(txtHorizontal.value))   {  
          alert("水平间距必须介于   0   --   999.");  
          txtHorizontal.focus();  
          return;  
      }  
      if   (txtBorder.value   &&   !_isValidNumber(txtBorder.value))   {  
          alert("边宽必须介于   0   --   999.");  
          txtBorder.focus();  
          return;  
      }  
      if   (txtVertical.value   &&   !_isValidNumber(txtVertical.value))   {  
          alert("垂直间距必须介于   0   --   999.");  
          txtVertical.focus();  
          return;  
      }  
   
      //   delete   selected   content   and   replace   with   image  
      if   (globalDoc.selection.type   ==   htmlSelectionControl   &&   !txtFileName.fImageLoaded)   {  
          grngMaster.execCommand('Delete');  
          grngMaster   =   globalDoc.selection.createRange();  
      }  
   
      idstr   =   "\"   id=\"556e697175657e537472696e67";           //   new   image   creation   ID  
      if   (!txtFileName.fImageLoaded)   {  
          grngMaster.execCommand("InsertImage",   false,   idstr);  
          elmImage   =   globalDoc.all['556e697175657e537472696e67'];  
          elmImage.removeAttribute("id");  
          elmImage.removeAttribute("src");  
          grngMaster.moveStart("character",   -1);  
      }   else   {  
          elmImage   =   grngMaster.item(0);  
          if   (elmImage.src   !=   txtFileName.value)   {  
              grngMaster.execCommand('Delete');  
              grngMaster   =   globalDoc.selection.createRange();  
              grngMaster.execCommand("InsertImage",   false,   idstr);  
              elmImage   =   globalDoc.all['556e697175657e537472696e67'];  
              elmImage.removeAttribute("id");  
              elmImage.removeAttribute("src");  
              grngMaster.moveStart("character",   -1);  
              txtFileName.fImageLoaded   =   false;  
          }  
          grngMaster   =   _getTextRange(elmImage);  
      }  
   
      if   (txtFileName.fImageLoaded)   {  
          elmImage.style.width   =   txtFileName.intImageWidth;  
          elmImage.style.height   =   txtFileName.intImageHeight;  
      }  
   
      if   (txtFileName.value.length   >   2040)   {  
          txtFileName.value   =   txtFileName.value.substring(0,2040);  
      }  
   
      elmImage.src   =   txtFileName.value;  
   
      if   (txtHorizontal.value   !=   "")   {   elmImage.hspace   =   parseInt(txtHorizontal.value);   }  
      else                                                       {   elmImage.hspace   =   0;   }  
   
      if   (txtVertical.value   !=   "")   {   elmImage.vspace   =   parseInt(txtVertical.value);   }  
      else                                                   {   elmImage.vspace   =   0;   }  
   
      elmImage.alt   =   txtAltText.value;  
   
      if   (txtBorder.value   !=   "")   {   elmImage.border   =   parseInt(txtBorder.value);   }  
      else                                               {   elmImage.border   =   0;   }  
   
      elmImage.align   =   selAlignment.value;  
      grngMaster.collapse(false);  
      grngMaster.select();  
      window.close();  
  }  
  </SCRIPT>  
   
  <BODY   id=bdy   style="BACKGROUND:   buttonface;   COLOR:   windowtext"   scroll=no   onload=Init()>  
  ...  
  <BUTTON   id=btnOK   style="LEFT:   31.36em;   WIDTH:   7em;   TOP:   1.06em;   HEIGHT:   2.2em"   tabIndex=40   type=submit>确定</BUTTON><BUTTON   id=btnCancel   style="LEFT:   31.36em;   WIDTH:   7em;   TOP:   3.65em;   HEIGHT:   2.2em"   onclick=window.close();   tabIndex=45   type=reset>取消</FONT></BUTTON>  
  为什么这个代码没有“document.getElementById('btnOK');”却能正确输出呢?Top

6 楼gu1dai(异域苍穹.百年飞行)回复于 2005-09-12 18:42:09 得分 20

index.html    
    var   arr   =   showModalDialog("selcolor.html",   "",   "dialogWidth:18.5em;   dialogHeight:17.5em;   status:0;   location:yes;");  
   
   
  selcolor.html  
  <SCRIPT     language=JavaScript>  
  window.returnValue   =   SelColor.value;  
  window.close();  
  </SCRIPT>  
   
  window.returnValue   会赋予arr  
   
  Top

相关问题

  • 变量未定义?
  • 变量未定义:
  • 新手真难啊!为什么总提示变量未定义?
  • IE打开画面时总是提示“变量未定义”的提示!
  • 加DBT.H头文件后,在其他cpp中使用变量DEV_BROADCAST_DEVICEINTERFACE居然提示未定义
  • 出现:变量未定义: 'adCMdStoredProc' 咋办?
  • js 文件中变量未定义
  • 用原生ADO对象时,变量如何定义? 直接写cn:=createoleobject("adodb.connection"); 总是提示变量cn 未定义?
  • 何会提示field未定义?
  • dbgrideh导入excel提示TDBGridEhExportClass未定义

关键词

  • html
  • globaldoc
  • txtfilename
  • grngmaster
  • htmlselectioncontrol
  • elmselectedimage
  • isvalidnumber
  • txtborder
  • txtvertical
  • txthorizontal

得分解答快速导航

  • 帖主:csongqi
  • gu1dai

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo