|
<script language="JavaScript" type="text/javascript">
<!--
//copyright(C) 2005 あう http://www5c.biglobe.ne.jp/~horoau/
//ver1.1
function cookie()
{
this.get = function (name)
{name = escape(name);
var cookies = document.cookie.split("; ");
var cookie = 0;
for(var i in cookies)
{if(cookies[i].indexOf(name+"=") == 0)
{cookie = cookies[i].split("=");}}
return unescape(cookie[1]);}
this.set = function (name,data,time)
{var times = time;
if(time)
{time = (time+"").replace(/[^\d]/,"");
for(var i=0;i==0;i++)
{time *= 1000;
if(String(times).indexOf("sec") != -1){break;}
time *= 60;
if(String(times).indexOf("min") != -1){break;}
time *= 60;
if(String(times).indexOf("hour") != -1){break;}
time *= 24;}
time = new Date(new Date().getTime()+time).toGMTString();}
name = escape(name);
data = escape(data);
document.cookie = name+"="+data+";expires="+time+";";}
this.clear = function (name)
{time = new Date(new Date().getTime()-10000).toGMTString();
name = escape(name);
document.cookie = name+"=1;expires="+time+";"}
this.check = function ()
{if(navigator.cookieEnabled != undefined)
{return navigator.cookieEnabled;}
do
{var name = "test"+Math.random();}
while(document.cookie.indexOf(name) != -1)
document.cookie = name+"=test;"
if(document.cookie.indexOf(name+"=test") != -1)
{return true;}
else
{return false;}}}
cookie = new cookie;
// -->
</script>
|
[ 2005.7.10 ] ver.1.1 |
|
メソッド名にいちいちcookieって出てくるのも
何となく煩わしいのでクラスにしちゃいました。
本来クラスライブラリなんだから
この方が正しい姿ではあるんだろうけどね。
でも本来cookieはdocumentオブジェクトのプロパティだから
初心者向けにはいいかなって思ったんだけどね。
って考えてみたらこのクラスライブラリって
中級者以上推奨なんだよね。どうも矛盾がある昨今。
|
|
|
[ 2005.1.18 ] ver.1.0 |
|
cookieなんてそれほどややこしいものじゃないけど
初心者の頃はずいぶん苦労した記憶があるね。
慣れてしまえばこんなものだけどあの頃の苦労が懐かしい。
でもその当時は関係なかった問題もあるにはあるんだよね。
全角文字とか使う場合はエンコードするわけだけど
escape()の形式ってブラウザによって違うし
最近のブラウザで言えばNetscapeがShift-JISで
IEがunicode,OperaやFirefoxもIEに合わせたのか知らないけどunicode
でもCGIはunicodeはあんまり一般的じゃないし。
(Perl5.8からunicode標準で扱えるらしいけど。もしくはJcode.pmとか使うか)
って話が脱線してるけど互換性を考えるといろいろ面倒ってこと。
JavaScriptで文字コード指定でエンコード、デコード出来るようにってのは
unicodeとShift-JISとかの間で変換するのって巨大な変換表使うから
あんまり現実的じゃないんだよね。
ってなんか難しい話になっちゃったけどこの話が理解できるレベルの人が
cookie扱うのにこんなクラス使わないような・・・。
|
|
ウェブ木箱
copyright(C) 2005 あう