JavaScriptのtable保存について
先日時間割り表を作り以下のコードを書きました
これをアプリにして自分のスマホに入れたのですがAndroidのためcookieが対応していません
そこでlocalStorageを使えば可能ということを聞きました
<body background="img/st18.png">
<center>
<font style="font-size:30pt;">
<font color="#4795F4"><b><i>Monday</i></b></font>
</font>
<br><br>
<a href="sat.html"><img src="img/blsat.gif" width="50" height="25"></a>
<a href="index.html"><img src="img/blhome.gif" width="50" height="25"></a>
<a href="tue.html"><img src="img/bltue.gif" width="50" height="25"></a>
<form>
<br>
<table border="3" bordercolor="#4795F4" align="center" bgcolor="#DDFFFA">
<tr align="center"><th>時間</th><th>科目</th><th>教室</th><th>備考</th></tr>
<tr align="center"><td width="20" height="80">1</td><td width="70"><span id="sbj1"></span></td>
<td width="60"><span id="crm1"></span></td><td width="100"><span id="com1"></span></td>
<tr align="center"><td width="20" height="80">2</td><td width="70"><span id="sbj2"></span></td>
<td width="60"><span id="crm2"></span></td><td width="100"><span id="com2"></span></td>
<tr align="center"><td width="20" height="80">3</td><td width="70"><span id="sbj3"></span></td>
<td width="60"><span id="crm3"></span></td><td width="100"><span id="com3"></span></td>
<tr align="center"><td width="20" height="80">4</td><td width="70"><span id="sbj4"></span></td>
<td width="60"><span id="crm4"></span></td><td width="100"><span id="com4"></span></td>
<tr align="center"><td width="20" height="80">5</td><td width="70"><span id="sbj5"></span></td>
<td width="60"><span id="crm5"></span></td><td width="100"><span id="com5"></span></td>
<span id="testarea"></span>
</form>
</body>
<script>
<!--
monaca.viewport({width: 320});
function setCookie(c_name,value,expiredays){
// pathの指定 変数名
var path = location.pathname;
// pathをフォルダ毎に指定する場合のIE対策
var paths = new Array();
paths = path.split("/");
if(paths[paths.length-1] != ""){
paths[paths.length-1] = "";
path = paths.join("/");
}
// 有効期限の日付 これがないと編集できない
var extime = new Date().getTime();
var cltime = new Date(extime + (60*60*24*1000*expiredays));
var exdate = cltime.toUTCString();
// クッキーに保存する文字列を生成 これがないと保存できない
var s="";
s += c_name +"="+ escape(value);// 値はエンコードしておく
s += "; path="+ path;
if(expiredays){
s += "; expires=" +exdate+"; ";
}else{
s += "; ";
}
// クッキーに保存
document.cookie=s;
}
function getCookie(c_name){
var st="";
var ed="";
if(document.cookie.length>0){
// クッキーの値を取り出す
st=document.cookie.indexOf(c_name + "=");
if(st!=-1){
st=st+c_name.length+1;
ed=document.cookie.indexOf(";",st);
if(ed==-1) ed=document.cookie.length;
// 値をデコードして返す
return unescape(document.cookie.substring(st,ed));
}
}
return "";
}
//変数設定
if(getCookie('mon_sects1')){var sect1 = getCookie('mon_sects1');}else{var sect1 = "科目1,教室,備考";}
if(getCookie('mon_sects2')){var sect2 = getCookie('mon_sects2');}else{var sect2 = "科目2,教室,備考";}
if(getCookie('mon_sects3')){var sect3 = getCookie('mon_sects3');}else{var sect3 = "科目3,教室,備考";}
if(getCookie('mon_sects4')){var sect4 = getCookie('mon_sects4');}else{var sect4 = "科目4,教室,備考";}
if(getCookie('mon_sects5')){var sect5 = getCookie('mon_sects5');}else{var sect5 = "科目5,教室,備考";}
var sects = new Array(sect1,sect2,sect3,sect4,sect5);
//時間割編集ここから
function editj(a){
var secname = new Array('mon_sects1','mon_sects2','mon_sects3','mon_sects4','mon_sects5');
editsec = window.prompt("「科目,教室,備考」の順に入力してください", sects[a]);
if(editsec){
secookie = secname[a];
setCookie(secookie,editsec,365);
location.reload();
}
}
//時間割編集ここまで
//時間割表示
for (i = 0; i < 5; i = i + 1){
j = i + 1;
wari = sects[i].split( "," );
var subj = "sbj" + j;
var clrm = "crm" + j;
var comt = "com" + j;
if(wari[0]){ document.getElementById(subj).innerHTML = wari[0]; }
if(wari[1]){ document.getElementById(clrm).innerHTML = wari[1]; }
document.getElementById(comt).innerHTML = wari[2] + "<br><img src='img/bledit.gif' width='50' height='20' onClick='editj(" + i + ")'>";
}
これをlocalStorageで保存するにはどうすればできますか?
もしもcookieを使ってもAndroidで保存できる方法があれば教えてください
お礼
アドバイスありがとうございます。 ブック全体をWebページ出力すると読みの情報が含まれてしまうのですが、シート単位では読み情報が含まれないようなので、結局その方法で対応しました。 納得いきませんが(^_^;