OfflineSave離線保存代碼再次發(fā)布使用說明
更新時間:2007年05月23日 00:00:00 作者:
必知:所有需要處理的HTML元素必須具有ID屬性,組件只會探測元素的ID屬性
1. 在</Head>上加入
<STYLE>
.userData {behavior:url(#default#userdata);}
</STYLE>
2. 在<body>下加入
<INPUT type=text class=userData id=OfflineSave_Area style="display:none">
3. 在</body>上加入
<script src=OfflineSave.js></script>
4. 為form標簽加入擴展屬性OfflineSave
例:<form id=myOfflineSaveForm OfflineSave ToolsBarStyle="mycssclass">
ToolsBarStyle為css class屬性,容器為div,包含select,input,button
注意:
情況1:
<form id=myform onsubmit="docheck(this)">
<input type=text id=mytext>
<input type=submit value=submit>
</form>
在這種情況下,組件可以自動探測服務器存活狀態(tài),如服務器無法連接時,會提示本地保存,
并且docheck函數(shù)也可以正常工作
情況2:
<form id=myform >
<input type=text id=mytext>
<input type=button value=submit onclick="myform.submit()">
</form>
在這種情況下,組件無法截獲提交事件,也無法自動探測服務器存活狀態(tài)
建議:檢測表單內(nèi)數(shù)據(jù)時,在form標簽onsubmit事件內(nèi)寫入檢測函數(shù)
聯(lián)系我:qq:13872888 注明:blueidea
var os_Obj,os_usd;
var os_dg=document.getElementById;
var os_ButtonCss="style=\"cursor:hand;height:20px;padding:0px 3px;border:1px solid #67C1E4;\"";
var os_SelectCss="style=\"font-size:12px;\"";
var os_SaveSuccessStr="離線數(shù)據(jù)保存成功!";
var os_SaveProStr="請輸入離線保存的名稱:(如為空則用當前時間表示)";
var os_LoadProStr="確認要載入離線數(shù)據(jù)嗎?";
var os_DelProStr="確認要刪除離線數(shù)據(jù)嗎?";
var os_DelSuccessStr="離線數(shù)據(jù)刪除成功!";
var os_oUD="OfflineSave_oPersistInput";
var os_DefaultFiledLength=10;//Default Filed length
var os_str="OfflineSave_";
var os_CannotSaveStr="保存數(shù)據(jù)時出現(xiàn)錯誤![離線保存空間僅限640K]\n\n有可能已超出離線保存容量!請刪除部分數(shù)據(jù)后再保存!";
var os_expires = (new Date(2010,1,1)).toUTCString();
InitOfflineSave();
function InitOfflineSave(){
for(var i=0;i<document.forms.length;i++){
if(document.forms[i].OfflineSave!=null){
os_usd=os_dg("OfflineSave_Area");
var tbs=document.forms[i].ToolsBarStyle==null?"":document.forms[i].ToolsBarStyle;
os_CreateToolBar(document.forms[i],tbs);
os_GetOfflineSaveList(document.forms[i].id);
var cmd=document.forms[i].onsubmit==null?"":document.forms[i].onsubmit;
if(cmd!=""){
cmd=document.forms[i].onsubmit+"";
cmd=cmd.split("{")[1].split("}")[0].replace("\n","");
}
cmd=escape(cmd);
eval("document.forms[i].onsubmit=function(){return os_CheckSubmit('"+document.forms[i].id+"','"+cmd+"');}");
break;
}
}
}
function os_CreateToolBar(obj,boolbarstyle){
var hc;
hc="<div id='os_"+obj.id+"_div'><select id='os_"+obj.id+"_Select' "+os_SelectCss+">";
hc+="</select>";
hc+=" ";
hc+="<input type=button "+os_ButtonCss+" value=載入 onclick=\"os_LoadData('"+obj.id+"');\">";
hc+=" ";
hc+="<input type=button "+os_ButtonCss+" value=刪除 onclick=\"os_DelData('"+obj.id+"');\">";
hc+=" ";
hc+="<input type=button "+os_ButtonCss+" value=離線保存 onclick=\"os_SaveData('"+obj.id+"');\"></div>";
obj.innerHTML=hc+obj.innerHTML;
if(boolbarstyle==""){
os_dg("os_"+obj.id+"_div").style.textAlign = "left";
os_dg("os_"+obj.id+"_div").style.textvAlign = "middle";
os_dg("os_"+obj.id+"_div").style.paddingTop = "3";
os_dg("os_"+obj.id+"_div").style.height = "30";
os_dg("os_"+obj.id+"_div").style.border = "1 solid black";
os_dg("os_"+obj.id+"_div").style.paddingLeft = "5";
}
else
os_dg("os_"+obj.id+"_div").className=boolbarstyle;
}
function os_CheckSubmit(id,subfunc){
if(!os_CanSubmit(os_dg(id).action)){
if(confirm("離線保存提示:\n\n您要提交的服務器連接可能出現(xiàn)問題,是否進行離線保存?")){
os_SaveData(id);
}
return false;
}
eval(unescape(subfunc));
}
function os_LoadData(id){
var v=os_dg("os_"+id+"_Select").selectedIndex;
if(v==0) return;
var ud=os_str+id+os_dg(id).length;
if(confirm(os_LoadProStr+"\n\n記錄名稱:"+os_getUserData(ud,"f_"+v+"_os_savename")+"\n保存時間:"+os_getUserData(ud,"f_"+v+"_os_savedate"))){
var lcount=os_dg(id).length;
for(var i=0;i<lcount;i++){
if(os_dg(id).item(i).type!="submit"&&os_dg(id).item(i).type!="reset"&&os_dg(id).item(i).type!="button"&&os_dg(id).item(i).id!="os_"+id+"_Select"){
if(os_dg(id).item(i).type=="radio"||os_dg(id).item(i).type=="checkbox")
os_dg(os_dg(id).item(i).id).checked=os_getUserData(ud,"f_"+v+"_"+os_dg(id).item(i).id)=="1"?true:false;
else{
if(os_dg(id).item(i).type=="select-multiple"){
var sm=os_getUserData(ud,"f_"+v+"_"+os_dg(id).item(i).id).split(",");
var x;
for(x=0;x<os_dg(id).item(i).length;x++)
os_dg(id).item(i).options[x].selected=false;
for(x=0;x<sm.length-1;x++)
os_dg(id).item(i).options[parseInt(sm[x])].selected=true;
}
else{
if(os_dg(id).item(i).type=="select-one")
os_dg(os_dg(id).item(i).id).selectedIndex=parseInt(os_getUserData(ud,"f_"+v+"_"+os_dg(id).item(i).id));
else{
//alert(os_getUserData(ud,"f_"+v+"_"+os_dg(id).item(i).id));
os_dg(os_dg(id).item(i).id).value=unescape(os_getUserData(ud,"f_"+v+"_"+os_dg(id).item(i).id));
}
}
}
}
}
}
}
function os_DelData(id){
var v=os_dg("os_"+id+"_Select").selectedIndex;
if(v==0) return;
var ud=os_str+id+os_dg(id).length;
if(confirm(os_DelProStr+"\n\n記錄名稱:"+os_getUserData(ud,"f_"+v+"_os_savename")+"\n保存時間:"+os_getUserData(ud,"f_"+v+"_os_savedate"))){
var i=0;
var ud=os_str+id+os_dg(id).length;
var lcount=parseInt(os_getUserData(ud,"count"));
var vcount=os_dg(id).length;
for(i=0;i<vcount;i++){
if(os_dg(id).item(i).type!="button"&&os_dg(id).item(i).id!="os_"+id+"_Select")
if(v<lcount)
os_putUserData(ud,"f_"+v+"_"+os_dg(id).item(i).id,os_getUserData(ud,"f_"+lcount+"_"+os_dg(id).item(i).id));
os_remUserData(ud,"f_"+lcount+"_"+os_dg(id).item(i).id);
}
if(v<lcount){
os_putUserData(ud,"f_"+v+"_os_savename",os_getUserData(ud,"f_"+lcount+"_os_savename"));
os_putUserData(ud,"f_"+v+"_os_savedate",os_getUserData(ud,"f_"+lcount+"_os_savedate"));
}
os_remUserData(ud,"f_"+lcount+"_os_savename");
os_remUserData(ud,"f_"+lcount+"_os_savedate");
eval("os_putUserData(ud,\"count\",\""+(lcount-1)+"\");");
var s=os_dg("os_"+id+"_Select");
if(lcount==1){
os_delUserData(ud);
while (s.length>0) s.remove(0);
s.add(new Option("無數(shù)據(jù)",0));
}
else{
s.item(0).text="共有"+(lcount-1)+"個記錄";
if(v<s.length){
s.item(0).value=0;
s.item(v).text=s.item(s.length-1).text;
}
s.remove(s.length-1);
}
alert(os_DelSuccessStr);
}
}
function os_SaveData(id){
if(os_dg(id).length<=0){
alert("[OfflineSave]Error:\n\n"+id+" no Element!(input,radio,checkbox,select)");
return;
}
var sd=new Date();
var sn=prompt(os_SaveProStr,sd.toLocaleString()+":MyData");
var ud=os_str+id+os_dg(id).length;
var lcount=os_getUserData(ud,"count");
lcount=lcount==""||lcount==null?1:parseInt(lcount)+1;
if(os_dg(id).length*10*2*lcount>64000){
alert(os_CannotSaveStr);
return;
}
try{
sn=sn==""?sd.toLocaleString():sn;
var vcount=os_dg(id).length;
for(var i=0;i<vcount;i++){
if(os_dg(id).item(i).type!="submit"&&os_dg(id).item(i).type!="reset"&&os_dg(id).item(i).type!="button"&&os_dg(id).item(i).id!="os_"+id+"_Select"){
if(os_dg(id).item(i).type=="radio"||os_dg(id).item(i).type=="checkbox"){
eval("os_putUserData(\""+ud+"\",\"f_"+lcount+"_"+os_dg(id).item(i).id+"\",\""+(os_dg(id).item(i).checked?"1":"0")+"\");");
}
else{
if(os_dg(id).item(i).type=="select-multiple"){
var mc="";
for(var x=0;x<os_dg(id).item(i).length;x++){
if(os_dg(id).item(i).options[x].selected) mc+=x+",";
}
eval("os_putUserData(\""+ud+"\",\"f_"+lcount+"_"+os_dg(id).item(i).id+"\",\""+mc+"\");");
}
else{
if(os_dg(id).item(i).type=="select-one")
eval("os_putUserData(\""+ud+"\",\"f_"+lcount+"_"+os_dg(id).item(i).id+"\",\""+os_dg(id).item(i).selectedIndex+"\");");
else
eval("os_putUserData(\""+ud+"\",\"f_"+lcount+"_"+os_dg(id).item(i).id+"\",\""+escape(os_dg(id).item(i).value)+"\");");
}
}
}
}
eval("os_putUserData(\""+ud+"\",\"f_"+lcount+"_os_savename\",\""+sn+"\");");
eval("os_putUserData(\""+ud+"\",\"f_"+lcount+"_os_savedate\",\""+sd.toLocaleString()+"\");");
eval("os_putUserData(ud,\"count\",\""+lcount+"\");");//save list count
var s=os_dg("os_"+id+"_Select");
s.item(0).text="共有"+lcount+"個記錄";
s.item(0).value=0;
s.add(new Option(sn,lcount));
alert(os_SaveSuccessStr);
}
catch(e){
alert(os_CannotSaveStr+"\n\n錯誤原因:"+e);
}
}
function os_GetOfflineSaveList(id){
var ud=os_str+id+os_dg(id).length;
var s=os_dg("os_"+id+"_Select");
var lcount=os_getUserData(ud,"count");
var sv="";
while (s.length>0) s.remove(0);
lcount=lcount==""||lcount==null?0:parseInt(lcount);
if(lcount<=0)
s.add(new Option("無數(shù)據(jù)","0"));
else{
s.add(new Option("共有"+lcount+"個記錄","0"));
for(var i=1;i<=lcount;i++){
eval("sv=os_getUserData(ud,\"f_"+i+"_os_savename\");");
s.add(new Option(sv,i));
}
}
}
function os_putUserData(sUDName,sName,sVal) {
os_usd.load(sUDName);
os_usd.expires = os_expires;
os_usd.setAttribute(sName,sVal);
os_usd.save(sUDName);
return;
}
function os_remUserData(sUDName,sName) {
os_usd.load(sUDName);
os_usd.removeAttribute(sName);
os_usd.save(sUDName);
return;
}
function os_getUserData(sUDName,sName) {
os_usd.load(sUDName);
return os_usd.getAttribute(sName);
}
function os_delUserData(sUDName){
var oTimeNow = new Date(); // Start Time
oTimeNow.setMinutes(oTimeNow.getMinutes()+1);
var sExpirationDate = oTimeNow.toUTCString();
os_usd.load(sUDName);
os_usd.expires = sExpirationDate;
os_usd.save(sUDName);
return;
}
function os_CanSubmit(url){
var xmlHTTP = window.ActiveXObject? new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();
xmlHTTP.open("get",url,false);
xmlHTTP.send("");
return xmlHTTP.status=="200";
}
OfflineSave.htm
<html>
<head>
<title>離線保存</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<STYLE> .userData {behavior:url(#default#userdata);}
</STYLE>
<link href="css.css" rel="stylesheet" type="text/css">
</head>
<body>
<INPUT type="text" class="userData" id="OfflineSave_Area" style="DISPLAY:none">
<table width="100%" border="0" cellpadding="0" cellspacing="0" style="FONT-SIZE:12px">
<tr>
<td height="78" colspan="3" valign="top"><font size="4" color="red">Ajax演示程序(J2EE)</font>
<BR>
<BR>
服務端:<b>JDK1.4 TomCAT4.1 Hibernate3 MSSQL Server2000(SP4) DWR1.0</b><BR>
客戶端:<b>JavaScript(CallBack) VML </b>
<BR>
編寫人:富深協(xié)通常州研發(fā)中心 姜泉</td>
</tr>
<tr>
<td colspan="3"><BR>
<table border="1" class="listView" width="100%">
<Caption>
離線數(shù)據(jù)保存(僅限IE瀏覽器5.0版本以上)</Caption>
<tbody>
<tr>
<td><form id="myOfflineSaveForm" action="J2EE_AJAX.html" onsubmit="alert('這是在HTML頁面中的onsubmit事件中執(zhí)行的函數(shù)!');" OfflineSave>
<table cellSpacing="0" cellPadding="2" width="100%" border="1">
<TR>
<TD>名稱<input type="text" id="name" size="5">
</TD>
<TD>公司全稱<TEXTAREA id="gsqc" name="gsqc" rows="2" cols="20">
</TEXTAREA></TD>
<TD>客戶代碼<INPUT id="dm" type="checkbox" name="dm"></TD>
</TR>
<tr>
<TD>分類<SELECT id="fl" name="fl">
<OPTION selected>中國人</OPTION>
<OPTION>外星人</OPTION>
<OPTION>山西人</OPTION>
</SELECT></TD>
<TD>性別<INPUT id="cz" type="radio" value="cz" checked name="RadioGroup">男<INPUT id="cz1" type="radio" value="cz1" name="RadioGroup">女</TD>
<TD>增加日期<SELECT id="rq" size="4" name="rq" multiple>
<OPTION>2000年</OPTION>
<OPTION>2003年</OPTION>
<OPTION>2004年</OPTION>
<OPTION>2005年</OPTION>
</SELECT></TD>
</tr>
</table><input type=submit value=submit >
</form>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</table>
<script src="OfflineSave.js"></script>
</body>
</html>
1. 在</Head>上加入
<STYLE>
.userData {behavior:url(#default#userdata);}
</STYLE>
2. 在<body>下加入
<INPUT type=text class=userData id=OfflineSave_Area style="display:none">
3. 在</body>上加入
<script src=OfflineSave.js></script>
4. 為form標簽加入擴展屬性OfflineSave
例:<form id=myOfflineSaveForm OfflineSave ToolsBarStyle="mycssclass">
ToolsBarStyle為css class屬性,容器為div,包含select,input,button
注意:
情況1:
<form id=myform onsubmit="docheck(this)">
<input type=text id=mytext>
<input type=submit value=submit>
</form>
在這種情況下,組件可以自動探測服務器存活狀態(tài),如服務器無法連接時,會提示本地保存,
并且docheck函數(shù)也可以正常工作
情況2:
<form id=myform >
<input type=text id=mytext>
<input type=button value=submit onclick="myform.submit()">
</form>
在這種情況下,組件無法截獲提交事件,也無法自動探測服務器存活狀態(tài)
建議:檢測表單內(nèi)數(shù)據(jù)時,在form標簽onsubmit事件內(nèi)寫入檢測函數(shù)
聯(lián)系我:qq:13872888 注明:blueidea
復制代碼 代碼如下:
var os_Obj,os_usd;
var os_dg=document.getElementById;
var os_ButtonCss="style=\"cursor:hand;height:20px;padding:0px 3px;border:1px solid #67C1E4;\"";
var os_SelectCss="style=\"font-size:12px;\"";
var os_SaveSuccessStr="離線數(shù)據(jù)保存成功!";
var os_SaveProStr="請輸入離線保存的名稱:(如為空則用當前時間表示)";
var os_LoadProStr="確認要載入離線數(shù)據(jù)嗎?";
var os_DelProStr="確認要刪除離線數(shù)據(jù)嗎?";
var os_DelSuccessStr="離線數(shù)據(jù)刪除成功!";
var os_oUD="OfflineSave_oPersistInput";
var os_DefaultFiledLength=10;//Default Filed length
var os_str="OfflineSave_";
var os_CannotSaveStr="保存數(shù)據(jù)時出現(xiàn)錯誤![離線保存空間僅限640K]\n\n有可能已超出離線保存容量!請刪除部分數(shù)據(jù)后再保存!";
var os_expires = (new Date(2010,1,1)).toUTCString();
InitOfflineSave();
function InitOfflineSave(){
for(var i=0;i<document.forms.length;i++){
if(document.forms[i].OfflineSave!=null){
os_usd=os_dg("OfflineSave_Area");
var tbs=document.forms[i].ToolsBarStyle==null?"":document.forms[i].ToolsBarStyle;
os_CreateToolBar(document.forms[i],tbs);
os_GetOfflineSaveList(document.forms[i].id);
var cmd=document.forms[i].onsubmit==null?"":document.forms[i].onsubmit;
if(cmd!=""){
cmd=document.forms[i].onsubmit+"";
cmd=cmd.split("{")[1].split("}")[0].replace("\n","");
}
cmd=escape(cmd);
eval("document.forms[i].onsubmit=function(){return os_CheckSubmit('"+document.forms[i].id+"','"+cmd+"');}");
break;
}
}
}
function os_CreateToolBar(obj,boolbarstyle){
var hc;
hc="<div id='os_"+obj.id+"_div'><select id='os_"+obj.id+"_Select' "+os_SelectCss+">";
hc+="</select>";
hc+=" ";
hc+="<input type=button "+os_ButtonCss+" value=載入 onclick=\"os_LoadData('"+obj.id+"');\">";
hc+=" ";
hc+="<input type=button "+os_ButtonCss+" value=刪除 onclick=\"os_DelData('"+obj.id+"');\">";
hc+=" ";
hc+="<input type=button "+os_ButtonCss+" value=離線保存 onclick=\"os_SaveData('"+obj.id+"');\"></div>";
obj.innerHTML=hc+obj.innerHTML;
if(boolbarstyle==""){
os_dg("os_"+obj.id+"_div").style.textAlign = "left";
os_dg("os_"+obj.id+"_div").style.textvAlign = "middle";
os_dg("os_"+obj.id+"_div").style.paddingTop = "3";
os_dg("os_"+obj.id+"_div").style.height = "30";
os_dg("os_"+obj.id+"_div").style.border = "1 solid black";
os_dg("os_"+obj.id+"_div").style.paddingLeft = "5";
}
else
os_dg("os_"+obj.id+"_div").className=boolbarstyle;
}
function os_CheckSubmit(id,subfunc){
if(!os_CanSubmit(os_dg(id).action)){
if(confirm("離線保存提示:\n\n您要提交的服務器連接可能出現(xiàn)問題,是否進行離線保存?")){
os_SaveData(id);
}
return false;
}
eval(unescape(subfunc));
}
function os_LoadData(id){
var v=os_dg("os_"+id+"_Select").selectedIndex;
if(v==0) return;
var ud=os_str+id+os_dg(id).length;
if(confirm(os_LoadProStr+"\n\n記錄名稱:"+os_getUserData(ud,"f_"+v+"_os_savename")+"\n保存時間:"+os_getUserData(ud,"f_"+v+"_os_savedate"))){
var lcount=os_dg(id).length;
for(var i=0;i<lcount;i++){
if(os_dg(id).item(i).type!="submit"&&os_dg(id).item(i).type!="reset"&&os_dg(id).item(i).type!="button"&&os_dg(id).item(i).id!="os_"+id+"_Select"){
if(os_dg(id).item(i).type=="radio"||os_dg(id).item(i).type=="checkbox")
os_dg(os_dg(id).item(i).id).checked=os_getUserData(ud,"f_"+v+"_"+os_dg(id).item(i).id)=="1"?true:false;
else{
if(os_dg(id).item(i).type=="select-multiple"){
var sm=os_getUserData(ud,"f_"+v+"_"+os_dg(id).item(i).id).split(",");
var x;
for(x=0;x<os_dg(id).item(i).length;x++)
os_dg(id).item(i).options[x].selected=false;
for(x=0;x<sm.length-1;x++)
os_dg(id).item(i).options[parseInt(sm[x])].selected=true;
}
else{
if(os_dg(id).item(i).type=="select-one")
os_dg(os_dg(id).item(i).id).selectedIndex=parseInt(os_getUserData(ud,"f_"+v+"_"+os_dg(id).item(i).id));
else{
//alert(os_getUserData(ud,"f_"+v+"_"+os_dg(id).item(i).id));
os_dg(os_dg(id).item(i).id).value=unescape(os_getUserData(ud,"f_"+v+"_"+os_dg(id).item(i).id));
}
}
}
}
}
}
}
function os_DelData(id){
var v=os_dg("os_"+id+"_Select").selectedIndex;
if(v==0) return;
var ud=os_str+id+os_dg(id).length;
if(confirm(os_DelProStr+"\n\n記錄名稱:"+os_getUserData(ud,"f_"+v+"_os_savename")+"\n保存時間:"+os_getUserData(ud,"f_"+v+"_os_savedate"))){
var i=0;
var ud=os_str+id+os_dg(id).length;
var lcount=parseInt(os_getUserData(ud,"count"));
var vcount=os_dg(id).length;
for(i=0;i<vcount;i++){
if(os_dg(id).item(i).type!="button"&&os_dg(id).item(i).id!="os_"+id+"_Select")
if(v<lcount)
os_putUserData(ud,"f_"+v+"_"+os_dg(id).item(i).id,os_getUserData(ud,"f_"+lcount+"_"+os_dg(id).item(i).id));
os_remUserData(ud,"f_"+lcount+"_"+os_dg(id).item(i).id);
}
if(v<lcount){
os_putUserData(ud,"f_"+v+"_os_savename",os_getUserData(ud,"f_"+lcount+"_os_savename"));
os_putUserData(ud,"f_"+v+"_os_savedate",os_getUserData(ud,"f_"+lcount+"_os_savedate"));
}
os_remUserData(ud,"f_"+lcount+"_os_savename");
os_remUserData(ud,"f_"+lcount+"_os_savedate");
eval("os_putUserData(ud,\"count\",\""+(lcount-1)+"\");");
var s=os_dg("os_"+id+"_Select");
if(lcount==1){
os_delUserData(ud);
while (s.length>0) s.remove(0);
s.add(new Option("無數(shù)據(jù)",0));
}
else{
s.item(0).text="共有"+(lcount-1)+"個記錄";
if(v<s.length){
s.item(0).value=0;
s.item(v).text=s.item(s.length-1).text;
}
s.remove(s.length-1);
}
alert(os_DelSuccessStr);
}
}
function os_SaveData(id){
if(os_dg(id).length<=0){
alert("[OfflineSave]Error:\n\n"+id+" no Element!(input,radio,checkbox,select)");
return;
}
var sd=new Date();
var sn=prompt(os_SaveProStr,sd.toLocaleString()+":MyData");
var ud=os_str+id+os_dg(id).length;
var lcount=os_getUserData(ud,"count");
lcount=lcount==""||lcount==null?1:parseInt(lcount)+1;
if(os_dg(id).length*10*2*lcount>64000){
alert(os_CannotSaveStr);
return;
}
try{
sn=sn==""?sd.toLocaleString():sn;
var vcount=os_dg(id).length;
for(var i=0;i<vcount;i++){
if(os_dg(id).item(i).type!="submit"&&os_dg(id).item(i).type!="reset"&&os_dg(id).item(i).type!="button"&&os_dg(id).item(i).id!="os_"+id+"_Select"){
if(os_dg(id).item(i).type=="radio"||os_dg(id).item(i).type=="checkbox"){
eval("os_putUserData(\""+ud+"\",\"f_"+lcount+"_"+os_dg(id).item(i).id+"\",\""+(os_dg(id).item(i).checked?"1":"0")+"\");");
}
else{
if(os_dg(id).item(i).type=="select-multiple"){
var mc="";
for(var x=0;x<os_dg(id).item(i).length;x++){
if(os_dg(id).item(i).options[x].selected) mc+=x+",";
}
eval("os_putUserData(\""+ud+"\",\"f_"+lcount+"_"+os_dg(id).item(i).id+"\",\""+mc+"\");");
}
else{
if(os_dg(id).item(i).type=="select-one")
eval("os_putUserData(\""+ud+"\",\"f_"+lcount+"_"+os_dg(id).item(i).id+"\",\""+os_dg(id).item(i).selectedIndex+"\");");
else
eval("os_putUserData(\""+ud+"\",\"f_"+lcount+"_"+os_dg(id).item(i).id+"\",\""+escape(os_dg(id).item(i).value)+"\");");
}
}
}
}
eval("os_putUserData(\""+ud+"\",\"f_"+lcount+"_os_savename\",\""+sn+"\");");
eval("os_putUserData(\""+ud+"\",\"f_"+lcount+"_os_savedate\",\""+sd.toLocaleString()+"\");");
eval("os_putUserData(ud,\"count\",\""+lcount+"\");");//save list count
var s=os_dg("os_"+id+"_Select");
s.item(0).text="共有"+lcount+"個記錄";
s.item(0).value=0;
s.add(new Option(sn,lcount));
alert(os_SaveSuccessStr);
}
catch(e){
alert(os_CannotSaveStr+"\n\n錯誤原因:"+e);
}
}
function os_GetOfflineSaveList(id){
var ud=os_str+id+os_dg(id).length;
var s=os_dg("os_"+id+"_Select");
var lcount=os_getUserData(ud,"count");
var sv="";
while (s.length>0) s.remove(0);
lcount=lcount==""||lcount==null?0:parseInt(lcount);
if(lcount<=0)
s.add(new Option("無數(shù)據(jù)","0"));
else{
s.add(new Option("共有"+lcount+"個記錄","0"));
for(var i=1;i<=lcount;i++){
eval("sv=os_getUserData(ud,\"f_"+i+"_os_savename\");");
s.add(new Option(sv,i));
}
}
}
function os_putUserData(sUDName,sName,sVal) {
os_usd.load(sUDName);
os_usd.expires = os_expires;
os_usd.setAttribute(sName,sVal);
os_usd.save(sUDName);
return;
}
function os_remUserData(sUDName,sName) {
os_usd.load(sUDName);
os_usd.removeAttribute(sName);
os_usd.save(sUDName);
return;
}
function os_getUserData(sUDName,sName) {
os_usd.load(sUDName);
return os_usd.getAttribute(sName);
}
function os_delUserData(sUDName){
var oTimeNow = new Date(); // Start Time
oTimeNow.setMinutes(oTimeNow.getMinutes()+1);
var sExpirationDate = oTimeNow.toUTCString();
os_usd.load(sUDName);
os_usd.expires = sExpirationDate;
os_usd.save(sUDName);
return;
}
function os_CanSubmit(url){
var xmlHTTP = window.ActiveXObject? new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();
xmlHTTP.open("get",url,false);
xmlHTTP.send("");
return xmlHTTP.status=="200";
}
OfflineSave.htm
復制代碼 代碼如下:
<html>
<head>
<title>離線保存</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<STYLE> .userData {behavior:url(#default#userdata);}
</STYLE>
<link href="css.css" rel="stylesheet" type="text/css">
</head>
<body>
<INPUT type="text" class="userData" id="OfflineSave_Area" style="DISPLAY:none">
<table width="100%" border="0" cellpadding="0" cellspacing="0" style="FONT-SIZE:12px">
<tr>
<td height="78" colspan="3" valign="top"><font size="4" color="red">Ajax演示程序(J2EE)</font>
<BR>
<BR>
服務端:<b>JDK1.4 TomCAT4.1 Hibernate3 MSSQL Server2000(SP4) DWR1.0</b><BR>
客戶端:<b>JavaScript(CallBack) VML </b>
<BR>
編寫人:富深協(xié)通常州研發(fā)中心 姜泉</td>
</tr>
<tr>
<td colspan="3"><BR>
<table border="1" class="listView" width="100%">
<Caption>
離線數(shù)據(jù)保存(僅限IE瀏覽器5.0版本以上)</Caption>
<tbody>
<tr>
<td><form id="myOfflineSaveForm" action="J2EE_AJAX.html" onsubmit="alert('這是在HTML頁面中的onsubmit事件中執(zhí)行的函數(shù)!');" OfflineSave>
<table cellSpacing="0" cellPadding="2" width="100%" border="1">
<TR>
<TD>名稱<input type="text" id="name" size="5">
</TD>
<TD>公司全稱<TEXTAREA id="gsqc" name="gsqc" rows="2" cols="20">
</TEXTAREA></TD>
<TD>客戶代碼<INPUT id="dm" type="checkbox" name="dm"></TD>
</TR>
<tr>
<TD>分類<SELECT id="fl" name="fl">
<OPTION selected>中國人</OPTION>
<OPTION>外星人</OPTION>
<OPTION>山西人</OPTION>
</SELECT></TD>
<TD>性別<INPUT id="cz" type="radio" value="cz" checked name="RadioGroup">男<INPUT id="cz1" type="radio" value="cz1" name="RadioGroup">女</TD>
<TD>增加日期<SELECT id="rq" size="4" name="rq" multiple>
<OPTION>2000年</OPTION>
<OPTION>2003年</OPTION>
<OPTION>2004年</OPTION>
<OPTION>2005年</OPTION>
</SELECT></TD>
</tr>
</table><input type=submit value=submit >
</form>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</table>
<script src="OfflineSave.js"></script>
</body>
</html>
相關(guān)文章
java和javascript獲取word文檔的書簽位置對比
這篇文章主要介紹了java和javascript獲取word文檔的書簽位置代碼對比,需要的朋友可以參考下2014-06-06javascript中window.location.href的用法
window.location.href?是一個用于獲取當前頁面?URL?或讓瀏覽器跳轉(zhuǎn)到新?URL?的重要方法,本文就詳細的介紹一下javascript中window.location.href的用法,感興趣的可以了解一下2023-08-08支付寶小程序?qū)崿F(xiàn)省市區(qū)三級聯(lián)動
這篇文章主要為大家詳細介紹了支付寶小程序?qū)崿F(xiàn)省市區(qū)三級聯(lián)動,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-06-06html+css+js實現(xiàn)canvas跟隨鼠標的小圓特效源碼
這篇文章主要介紹了html+css+js實現(xiàn)canvas跟隨鼠標的小圓特效源碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03