JavaScriptの中のdocument.co okie
11694 ワード
いくつかのWebサイトは、あなたのハードディスク上に小さなテキストファイルでいくつかの情報を格納しています.これらのファイルはCookieと呼ばれます.一般的には、CookiesはCGIまたは類似しており、HTMLよりも高級なファイル、プログラムなどが作成されていますが、javascriptはCookiesに対する全面的なアクセス権を提供しています.
各Cookieは同じです.<<値>の制限はjavascriptの命名制限と大同小異で、「javascriptキーワードは使えません」が少なくなりました.後者は分かりにくいですが、アルファベットと数字だけで命名すれば大丈夫です.値>「URLで符号化できる文字しか使えない」という要求もあります.
各Cookieには失効日があります.コンピュータの時計が失効日を過ぎると、このCookieは削除されます.直接にCookieを削除することはできませんが、設定失効日が今の時刻より早い方法で間接的に削除することができます.
各ウェブサイト、または各サイトには、自分のCookiesがあります.これらのCookiesはこのサイトの下のウェブページからしかアクセスできません.他のサイトや同じサイトの下に許可されていないエリアからのウェブページは、アクセスできません.各「グループ」Cookiesには規定の大きさがあります.一番大きいサイズを超えると、一番早く失効したCookieは先に削除されて、新しいCookie「安家」になります.
設定クッキーは各cookieペアであり、以下のような文字列をdocument.co okieに割り当てることができます.document.co okie=「userId=828」です.複数の名前/値ペアを一度に記憶する場合は、例えば、ドキュメンタ.co okie="userId=828;userName=hurlk";cookieの名前または値には、セミコロン(;)、コンマ(,)、等号(=)およびスペースは使用できません.cookieの名前でこれを行うのは簡単ですが、保存する値は不確定です.これらの値はどうやって保存しますか?この方法はescape()関数で符号化され、いくつかの特殊記号を16進数表現で使用することができ、例えばスペースは「20%」と符号化され、クッキー値に格納することができ、またこの方式を使用すると中国語の文字化けの出現を回避することができる.例えば、document.co okie=「str=」+escape(「I love ajax」);相当于:document.co okie=“str=I%20 love%20 a jax”;escape()を使って符号化した後、値を取り出した後にunescape()を用いて復号しなければ元のcookie値が得られないが、一般的にCookieを設定する場合はescape()を用いず、Cookieを取得する場合はunescape()を用いない.
これは前で紹介しました.document.co okieは属性のように見えるが、異なる値を与えることができる.しかし、それは一般的な属性とは異なり、その割当値を変更することは、元の値を失うことを意味しない.例えば、次の2つの文が連続して実行される:document.co okie=「userId=828」.document.co okie=「userName=hurlk」この時、ブラウザは2つのクッキーを維持します.それぞれuserIdとuserNameです.したがって、document.co okieに値を賦与するのは、このようなステートメントを実行するようになります.document.addCookie(「userId=828」).document.addCookie(「userName=hulk」);実際には、ブラウザは、このようにクッキーを設定しています.クッキーの値を変更するには、例えば、document.co okie="userId=929";これにより、userIdというクッキー値を929に設定する.
cookieの値を取得するには、cookieの値を取得する方法を説明します.cookieの値は、document.co okieによって直接得られることができる.これは、コロンで区切られた複数の名前/値ペアで構成される文字列を取得し、これらの名前/値ペアは、ドメイン名の下のすべてのクッキーを含む.たとえば:
cookieの名前を指定することなく、すべてのcookie値を一度に取得することができます.これはcookieの値を処理する上で最も厄介な部分です.ユーザはこの文字列を自分で分析し、指定されたクッキー値を取得しなければならない.
このようにして、単一のクッキーの値を同様の方法で取得し、1つ以上のクッキーの値を取得することができ、その主な技術は文字列と配列の相関動作を依然として維持する.
クッキーの設定終了日はこれまでのところ、すべてのクッキーは単一セッションクッキーであり、つまり、ブラウザが閉じたらこれらのクッキーは失われます.これらのクッキーはメモリに保存されているだけで、対応するハードディスクファイルは確立されていません.実際の開発では、クッキーはしばしば長期保存を必要とし、例えばユーザ登録の状態を保存する.これは、以下のオプションで実現することができます.Dcument.co okie="userId=828;expires=GMT Stering"そのうちGMT_StringはGMT形式で表される時間文字列で、この文はuserIdというcookieをGMT_に設定します.Stringは、この時間を超えると、cookieが消失し、アクセスできなくなります.例えば、クッキーを10日後に期限が切れるように設定すれば、このように実現できます.
クッキーを削除するために、クッキーを削除するために、その賞味期限を過去の時間に設定することができます.例えば、
クッキーにアクセスできるパスを指定します.
デフォルトでは、あるページにクッキーが作成された場合、そのページのあるディレクトリの他のページにもアクセスできます.このディレクトリの下にサブディレクトリがあれば、サブディレクトリでもアクセスできます.wwww.xxxxxxx.com/html/a.において作成されたクッキーは、wwww.xxxxxxx.com/html/b.またはwwww.xxx.com/によってもよい. html/some/c.は訪問しましたが、wwww.xxxxxx.com/d.htmlにアクセスできませんでした.クッキーがアクセスできるディレクトリを制御するために、pathパラメータを使用してクッキーを設定する必要があります.文法は以下の通りです.cookie Dirはクッキーにアクセスできるディレクトリを表している.例えば、document.co okie="userId=320;path=shop"現在のクッキーはshopディレクトリでしか使えないという意味です.クッキーをホームページ全体で利用できるようにするなら、クッキーを利用できます.dirはルートディレクトリとして指定されています.例えば、document.co okie="userId=320;path=/"
cookieにアクセスできるホスト名とパスが同じであることを指定します.ホスト名は同じドメインで異なるホストを指します.例えば、www.google.comとgmail.google.comは2つの異なるホスト名です.デフォルトでは、一つのホストで作成されたクッキーは他のホストではアクセスできないが、domainパラメータによって制御が可能であり、その構文フォーマットは、document.co okie=「name=value;domain=cookie Domain」である.googleを例にとって、複数のホストへのアクセスを実現するには、document.co okie=「name=value;domain=google.com」と書くことができます.このように、すべてのgoogle.comの下のホストはこのクッキーにアクセスできます.
総合例:汎用的なcookie処理関数cookieを構成するプロセスは複雑で、類似性がある.したがって、コードの多重化を実現するために、いくつかの関数を定義してクッキーの汎用動作を完了することができる.一般的なクッキー動作とその関数実装を以下に示します.1.cookieを追加します.addCookie(name、value、expireHours)この関数は3つのパラメータを受信します.cookieの名前、cookieの値、および何時間後に期限が切れますか?ここでexpireHoursを約束します.期限切れの時間は設定しません.つまり、ブラウザが閉まったら、クッキーが自動的に消えます.この関数は以下のように実装されます.
2.指定された名前のクッキー値を取得する:get Cookie(name)この関数は、名前がnameのクッキー値を返します.存在しない場合は、空に戻ります.
3.指定された名前のクッキーを削除する:deleteCookie(name)この関数は、指定された名前のクッキーを削除することができます.
本論は次から次へhttp://javacrazyer.iteye.com/blog/748986
各Cookieは同じです.
各Cookieには失効日があります.コンピュータの時計が失効日を過ぎると、このCookieは削除されます.直接にCookieを削除することはできませんが、設定失効日が今の時刻より早い方法で間接的に削除することができます.
各ウェブサイト、または各サイトには、自分のCookiesがあります.これらのCookiesはこのサイトの下のウェブページからしかアクセスできません.他のサイトや同じサイトの下に許可されていないエリアからのウェブページは、アクセスできません.各「グループ」Cookiesには規定の大きさがあります.一番大きいサイズを超えると、一番早く失効したCookieは先に削除されて、新しいCookie「安家」になります.
設定クッキーは各cookieペアであり、以下のような文字列をdocument.co okieに割り当てることができます.document.co okie=「userId=828」です.複数の名前/値ペアを一度に記憶する場合は、例えば、ドキュメンタ.co okie="userId=828;userName=hurlk";cookieの名前または値には、セミコロン(;)、コンマ(,)、等号(=)およびスペースは使用できません.cookieの名前でこれを行うのは簡単ですが、保存する値は不確定です.これらの値はどうやって保存しますか?この方法はescape()関数で符号化され、いくつかの特殊記号を16進数表現で使用することができ、例えばスペースは「20%」と符号化され、クッキー値に格納することができ、またこの方式を使用すると中国語の文字化けの出現を回避することができる.例えば、document.co okie=「str=」+escape(「I love ajax」);相当于:document.co okie=“str=I%20 love%20 a jax”;escape()を使って符号化した後、値を取り出した後にunescape()を用いて復号しなければ元のcookie値が得られないが、一般的にCookieを設定する場合はescape()を用いず、Cookieを取得する場合はunescape()を用いない.
これは前で紹介しました.document.co okieは属性のように見えるが、異なる値を与えることができる.しかし、それは一般的な属性とは異なり、その割当値を変更することは、元の値を失うことを意味しない.例えば、次の2つの文が連続して実行される:document.co okie=「userId=828」.document.co okie=「userName=hurlk」この時、ブラウザは2つのクッキーを維持します.それぞれuserIdとuserNameです.したがって、document.co okieに値を賦与するのは、このようなステートメントを実行するようになります.document.addCookie(「userId=828」).document.addCookie(「userName=hulk」);実際には、ブラウザは、このようにクッキーを設定しています.クッキーの値を変更するには、例えば、document.co okie="userId=929";これにより、userIdというクッキー値を929に設定する.
cookieの値を取得するには、cookieの値を取得する方法を説明します.cookieの値は、document.co okieによって直接得られることができる.これは、コロンで区切られた複数の名前/値ペアで構成される文字列を取得し、これらの名前/値ペアは、ドメイン名の下のすべてのクッキーを含む.たとえば:
<script language="JavaScript" type="text/javascript">
<!--
document.cookie="userId=828";
document.cookie="userName=hulk";
var strCookie=document.cookie;
alert(strCookie);
//-->
</script>
cookieの名前を指定することなく、すべてのcookie値を一度に取得することができます.これはcookieの値を処理する上で最も厄介な部分です.ユーザはこの文字列を自分で分析し、指定されたクッキー値を取得しなければならない.
<script language="JavaScript" type="text/javascript">
<!--
// cookie
document.cookie="userId=828";
document.cookie="userName=hulk";
// cookie
var strCookie=document.cookie;
// cookie /
var arrCookie=strCookie.split("; ");
var userId;
// cookie , cookie
for(var i=0;i<arrCookie.length;i++){
var arr=arrCookie[i].split("=");
// userId cookie,
if("userId"==arr[0]){
userId=arr[1];
break;
}
}
alert(userId);
//-->
</script>
このようにして、単一のクッキーの値を同様の方法で取得し、1つ以上のクッキーの値を取得することができ、その主な技術は文字列と配列の相関動作を依然として維持する.
クッキーの設定終了日はこれまでのところ、すべてのクッキーは単一セッションクッキーであり、つまり、ブラウザが閉じたらこれらのクッキーは失われます.これらのクッキーはメモリに保存されているだけで、対応するハードディスクファイルは確立されていません.実際の開発では、クッキーはしばしば長期保存を必要とし、例えばユーザ登録の状態を保存する.これは、以下のオプションで実現することができます.Dcument.co okie="userId=828;expires=GMT Stering"そのうちGMT_StringはGMT形式で表される時間文字列で、この文はuserIdというcookieをGMT_に設定します.Stringは、この時間を超えると、cookieが消失し、アクセスできなくなります.例えば、クッキーを10日後に期限が切れるように設定すれば、このように実現できます.
<script language="JavaScript" type="text/javascript">
<!--
//
var date=new Date();
var expireDays=10;
// date 10
date.setTime(date.getTime()+expireDays*24*3600*1000);
// userId userName cookie 10
document.cookie="userId=828; userName=hulk; expire="+date.toGMTString();
//-->
</script>
クッキーを削除するために、クッキーを削除するために、その賞味期限を過去の時間に設定することができます.例えば、
<script language="JavaScript" type="text/javascript">
<!--
//
var date=new Date();
// date
date.setTime(date.getTime()-10000);
// userId cookie
document.cookie="userId=828; expire="+date.toGMTString();
//-->
</script>
クッキーにアクセスできるパスを指定します.
デフォルトでは、あるページにクッキーが作成された場合、そのページのあるディレクトリの他のページにもアクセスできます.このディレクトリの下にサブディレクトリがあれば、サブディレクトリでもアクセスできます.wwww.xxxxxxx.com/html/a.において作成されたクッキーは、wwww.xxxxxxx.com/html/b.またはwwww.xxx.com/によってもよい. html/some/c.は訪問しましたが、wwww.xxxxxx.com/d.htmlにアクセスできませんでした.クッキーがアクセスできるディレクトリを制御するために、pathパラメータを使用してクッキーを設定する必要があります.文法は以下の通りです.cookie Dirはクッキーにアクセスできるディレクトリを表している.例えば、document.co okie="userId=320;path=shop"現在のクッキーはshopディレクトリでしか使えないという意味です.クッキーをホームページ全体で利用できるようにするなら、クッキーを利用できます.dirはルートディレクトリとして指定されています.例えば、document.co okie="userId=320;path=/"
cookieにアクセスできるホスト名とパスが同じであることを指定します.ホスト名は同じドメインで異なるホストを指します.例えば、www.google.comとgmail.google.comは2つの異なるホスト名です.デフォルトでは、一つのホストで作成されたクッキーは他のホストではアクセスできないが、domainパラメータによって制御が可能であり、その構文フォーマットは、document.co okie=「name=value;domain=cookie Domain」である.googleを例にとって、複数のホストへのアクセスを実現するには、document.co okie=「name=value;domain=google.com」と書くことができます.このように、すべてのgoogle.comの下のホストはこのクッキーにアクセスできます.
総合例:汎用的なcookie処理関数cookieを構成するプロセスは複雑で、類似性がある.したがって、コードの多重化を実現するために、いくつかの関数を定義してクッキーの汎用動作を完了することができる.一般的なクッキー動作とその関数実装を以下に示します.1.cookieを追加します.addCookie(name、value、expireHours)この関数は3つのパラメータを受信します.cookieの名前、cookieの値、および何時間後に期限が切れますか?ここでexpireHoursを約束します.期限切れの時間は設定しません.つまり、ブラウザが閉まったら、クッキーが自動的に消えます.この関数は以下のように実装されます.
<script language="JavaScript" type="text/javascript">
<!--
function addCookie(name,value,expireHours){
var cookieString=name+"="+escape(value);
//
if(expireHours>0){
var date=new Date();
date.setTime(date.getTime+expireHours*3600*1000);
cookieString=cookieString+"; expire="+date.toGMTString();
}
document.cookie=cookieString;
}
//-->
</script>
2.指定された名前のクッキー値を取得する:get Cookie(name)この関数は、名前がnameのクッキー値を返します.存在しない場合は、空に戻ります.
<script language="JavaScript" type="text/javascript">
<!--
function getCookie(name){
var strCookie=document.cookie;
var arrCookie=strCookie.split("; ");
for(var i=0;i<arrCookie.length;i++){
var arr=arrCookie[i].split("=");
if(arr[0]==name)return arr[1];
}
return "";
}
//-->
</script>
3.指定された名前のクッキーを削除する:deleteCookie(name)この関数は、指定された名前のクッキーを削除することができます.
<script language="JavaScript" type="text/javascript">
<!--
function deleteCookie(name){
var date=new Date();
date.setTime(date.getTime()-10000);
document.cookie=name+"=v; expire="+date.toGMTString();
}
//-->
</script>
本論は次から次へhttp://javacrazyer.iteye.com/blog/748986