Javascriptでcookieの読み書きをやってみた 〜観覧した時刻の保存と表示〜
JavaScript例文辞典で勉強してたので、今日の分をまとめました。
今日は、cookieの読み書きです。観覧した時刻の保存と表示をやってみました。
一応htmlに書けば動くと思います。というか、例文辞典さんの所を丸写しですから大丈夫でしょう。
丸写しした箇所はこちらから
勉強のスタイルとしては、ソースを呼んでコメントで動きを解説しています。添削とか超ください><
もしかしたらあとで、cookieの消去とかも追加するかもしれません。そのときは追記します。
<html> <head> <title>今回閲覧した時刻を保存して表示する。</title> <script language="JavaScript"><!-- function cookie_day_write(){ theDay = 3; //日にちを設定する setDay = new Date(); //日付オブジェクトを作成 cDay = setDay.getFullYear()+"年"+eval(setDay.getMonth()+1)+"月"+setDay.getDate()+"日"; //今日の年月日をcDayに格納 setDay.setTime(setDay.getTime()+(theDay*1000*60*60*24)); //setDayにまず秒数に直す、theDayのミリ秒数をプラスして、setTime()で設定している。 expDay = setDay.toGMTString(); //setDay(秒数に直したもの)をGMT、グリニッジ標準時にしている document.cookie = "aDay" + "="+escape(cDay)+";expires="+expDay; //cookieに書き込み、名前=値;日付;という形 } function cookie_day_read(){ theName = "aDay="; //cookieに書き込んだ時の名前を抽出するために利用 theCookie = document.cookie+";"; //document.cookieを格納。検索するときに使う。 start = theCookie.indexOf(theName); //indexOf()でtheNameを検索、位置の値を出力 if (start != -1) { //もしstartが-1以外、startに値がある、つまりcookieに記録されていたら end = theCookie.indexOf(";",start); //まず終わりの値を設定する。startからいくつまであるのかを検索。 aDay= unescape(theCookie.substring(start+theName.length,end)); //substringでstart+theNameの値の先からendまで抜き取り、unescapeでコードを一応直す? document.write("観覧した時間:"+ aDay + "です。"); //aDay書き出す } } // --> </script> </head> <body> 今回閲覧した時刻を保存する<br> <a href="#" onClick="cookie_day_write()">書き込み</a><br> <a href="#" onClick="cookie_day_read()">読み取り</a><br> </body> </html>