这个页面是镶嵌在一个软件中使用的,是根据一个字段到数据库查相应数据的,如果数据库有数据,把数据掉出来写在相应位置(由程序做)程序正常,如果没数据就不写东西(程序做),第一次程序没事,第二次如果还是没找到程序就关了,我怀疑是页面没初始化的原因,请问怎样初始化页面函数执行入口为:
jsStartup(strFldValue)函数
页面代码如下:<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" >
<STYLE type=text/css>
<!--
BODY { FONT-SIZE: 9pt } TD { FONT-SIZE: 9pt }
-->
</STYLE>
</head><script language="JavaScript">
<!--
// 容错函数,忽略页面运行中一些脚本产生的不相关错误
var idx=0;
function killErrors()
{
return ture;
}window.onerror = killErrors;// 动态HTML语句构造函数,对生成页面的指定行重新写入HTML语句。function mywrite(strTable)
{var str = "<table  width='500' border='0' cellpadding='0' cellspacing='0' style='border: solid; border-width: 1px 1px 1px 1px; border-color: #999999 #999999 #999999 #999999'>";
document.all.query.insertAdjacentHTML("beforeEnd", str + strTable + "</table>");}// 链接数据库函数,利用字段的字符串从数据库中查找并获取对应的信息,并构造动态页面。function getCountFromDB(str701Content)
{
  var clsConn = new ActiveXObject("ADODB.Connection");
  var clsRs = new ActiveXObject("ADODB.Recordset");
  clsConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;User ID=admin;Password=;";
  clsConn.ConnectionString += "Data Source=CodeTable.mdb;";
  clsConn.ConnectionTimeout = 10;  clsConn.Open();
  if(clsConn.Errors.Count > 0)
  {
    alert("当前数据库已经打开,请点击“放弃”按钮,关闭数据库后重试。");
  }  if(clsConn.Errors.Count > 0)
    return ;  // 并构造动态页面  var rs=null;  // 初始化结果集   clsRs.ActiveConnection = clsConn;
   clsRs.CursorType = 3; //adOpenStatic;
   clsRs.LockType = 3;   //adLockOptimistic;   mywrite("<tr><td height='35' valign='middle' align='center' bgcolor='#999999' ><font color='#FFFFFF'>选择作者对应的简介,如果出现多个简介表明作者重名或有包含关系,请手动选择。</font></td> </tr>")
   var fldstr = str701Content;
   // 打开数据表
   //alert("开始查询"+fldstr);
   var sqlSelCnt = "select jianjie from zuozhe where zuozhe like '%" + fldstr + "%'";
   
   var rs = new ActiveXObject("ADODB.Recordset");
   rs.open(sqlSelCnt, clsConn);
   mywrite("<tr><td height='35' valign='middle' align='center' bgcolor='#336699'><font color='#ffffff'>在此选择作者" + fldstr + "的简介</font></td></tr>");
   // 数据库中没有找到对应的记录
   if(rs.eof)
   {
      alert("读取失败!数据库中没有作者“" + fldstr + "”");
      mywrite("<tr><td height='35' valign='middle' align='left' width='500' bgcolor=\"#FFFFCC\">错误原因:数据库中没有作者“" + fldstr + "”,请在数据库中加入该读者和对应的简介。</td></tr>")
   }
   // 构造单选钮   while (!rs.eof)
   {
      var cnt = rs.Fields("jianjie");
      mywrite("<tr><td height='35' valign='middle' align='left' width='500' bgcolor=\"#FFFFCC\"><input type=\"radio\" name=\"a2\" id=\"a2\" value=\"" + cnt + "\">"+cnt+"<br></td> </tr>")
      rs.moveNext;
      idx++;
      //alert("开始查询完毕"+idx);
   }
   // 关闭数据表
   rs.close();
   rs = null;
   clsConn.close();
   //alert("关数据库");
}// 读取记录中的相应字段值function jsStartup(strFldValue)
{
  //var lStart = strFldValue.indexOf("<marc>");
  //var lEnd = strFldValue.indexOf("</marc>") + 7;
  //var strMarc = strFldValue.substring(lStart, lEnd);
  var strMarc = strFldValue;
  //alert(strMarc);
  var Start=strMarc.indexOf('<field name="701"');
  var End=strMarc.indexOf("</field>",Start);
  
  if(Start ==-1)
  {
    alert("记录中不存在701字段");
    return;
  }
  else
  {
    var str701Field=strMarc.substring(Start,End);
    var Start1=str701Field.indexOf('<sf name="a">');
    var End1=str701Field.indexOf("</sf>",Start1);
    var str701Content=str701Field.substring(Start1+13,End1);
    getCountFromDB(str701Content);
  }
  document.forms("a1").test.value=strMarc;
 
}// 返回单选按钮选中的值function sub()
{
    var outputstr;
    if (idx==0)
    {  
      //alert("假如");
      return outputstr="null";
    }
    else
    {
      var obj=document.getElementsByName("a2");
      alert(obj);
      if (obj.length > 1)
      {
        for(var i=0;i<obj.length;i++)
        {
          if(document.forms("query").a2[i].checked)
          {
             if(obj.length != 1)
             {
               outputstr = document.forms("query").a2[i].value
             }
          }
        }
        if(obj.length == 1)
        {
           outputstr = document.forms("query").a2.value
        }
       return outputstr;
     }   
   }
}// 组合记录,重新生成MARCfunction jsCleanup(strVoid)
{
    // 组合记录(XML格式)
    var strmarc_a = document.forms("a1").test.value;
    var strContent=sub();
    //alert(strContent+"返回数");
    if(strContent !="null")
    {
    var Start=strmarc_a.indexOf('<field name="');
     var End=0;
    for(i=0;;i++)
    {
           End=strmarc_a.indexOf("</field>",Start+1);
   if(i!=0)
Start=Start+8;  
   temp=strmarc_a.substring(Start,End+8);
           var strFieldNum=temp.substring(13,16);
           Start=End;
           if(parseInt(strFieldNum)>=314)
           {
             var lStart=strmarc_a.indexOf('<field name="'+strFieldNum+'"');
             var lEnd=strmarc_a.indexOf("</field>",lStart);
             var strNewRecord=strmarc_a.substring(0,lStart)+'<field name="314" indicator="\x11\x11"><sf name="a">'+strContent+'</sf></field>'+strmarc_a.substring(End+8,strmarc_a.length);
             document.forms("a1").test.value = strNewRecord;
             //alert(strNewRecord);
             break;
           }        }  
     }
     else
     {
        document.forms("a1").test.value = strmarc_a;
        //alert(strmarc_a);
     }
     document.forms("a1").submit(); }//-->
</script>
<body bgcolor="#ffffff" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<form name="query"></form>
<form name="a1" method="post"><input type="hidden" name="test" value=""></form>
</body>
</html>