这个页面是镶嵌在一个软件中使用的,是根据一个字段到数据库查相应数据的,如果数据库有数据,把数据掉出来写在相应位置(由程序做)程序正常,如果没数据就不写东西(程序做),第一次程序没事,第二次如果还是没找到程序就关了,我怀疑是页面没初始化的原因,请问怎样初始化页面函数执行入口为:
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>
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>
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货