ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript による Cookie の操作と Cookie 属性の正しい使用_JavaScript スキル

JavaScript による Cookie の操作と Cookie 属性の正しい使用_JavaScript スキル

WBOY
WBOYオリジナル
2016-05-16 18:44:361087ブラウズ
1. Cookie を作成することから始めます。
var the_date = new Date("2020 年 12 月 31 日");
varexpiresDate = the_date.toGMTString();
document.cookie = "userDefineCSS="エスケープ(タイトル) "; 期限切れ= ;
最初の文は日付オブジェクトです;
2 番目の文は日付形式を GMT 形式に変換します; 編集者: GMT はグリニッジ標準時であり、現在は世界標準時とも呼ばれています。
3 番目の文は、Cookie の内容をクライアントに書き込むことです。
このうち、expiresはCookieの有効期限を示すためにシステムによって使用されます(省略も可能)、expiresは判読できません。
エスケープは Cookie 値をエンコードするもので、中国語、スペースなどを処理するように設定されています。
2. Cookie の取得は比較的簡単です。
function GetCSS()
{
var cookieStr = document.cookie; // Cookie 文字列を取得するため、expires は cookieStr に表示されません。
if (cookieStr == "")
{
return "main1"; //Cookie 文字列が取得されなかった場合は、デフォルト値を返します
}
var cookieValue = cookieStr.split(" ; "); //各 Cookie を分割し、配列としてまとめて保存します。複数の Cookie はセミコロンとスペースで区切られます。ただし、以前は 1 つの Cookie のみを使用し、その値と有効期限もセミコロンで区切られます。
はスペースで区切られます ; var startPos = -1; var endPos = -1; length; i )
{
startPos = cookieValue[i] .indexOf(varName);
if (startPos != 0)
{
continue; varName という名前の cookie、次の cookie を決定します
}
startPos = varName .length 1; //現在の cookie は varName という名前の cookie です。1
endPos = cookieValue[i] .length;
var css = unescape(cookieValue[i].substring(startPos , endPos));
return
}


Cookieを書き込む際にはescapeを使用するため、Cookieの値を返す際のデコードにはunescapeを使用します。
Cookie の属性を正しく使用する
まずは Cookie の構造を見てみましょう
ここで話している Cookie の構造は、その保存構造ではなく、その表示構造について主に学習します。プレゼンテーション構造 Cookie に対する JS (JavaScript) 操作を実装します。
Cookie のパフォーマンス構造は比較的単純で、Cookie 名と Cookie 値で構成され、各 Cookie はセミコロンとスペースで区切られます。前述したように、有効期限、パス、ドメインは読み取りできないため、プレゼンテーション構造には反映されません。
cookieName1=cookieValue1; cookieName2=cookieValue2[...; cookieNamen=cookieValuen]
セミコロンとスペース記号で区切ると各 Cookie が取得でき、等号で区切ると各 Cookie の名前が取得できます。と値。
CookieのサブキーはcookieValueにのみ表示されます。サブキーの構造はサブキー名=サブキー値となり、複数のサブキーは&で結ばれます。例:
cookieName1=サブキー名 1=サブキー値 1&サブキー名 2=サブキー値 2
ASP ファイルの場合、Cookie 構造に次のような文字列があることがわかります: ASPSESSIONIDQSTDRATQ=24 文字
これについては、http://www.aspxuexi.com/aspbasic/cookie/2006-6-10/Session_Cookie.htm を確認してください。
同じ名前、異なるドメイン、または異なるパスの Cookie は別の Cookie です。 🎜> 同じ名前、同じドメイン、同じパスを持つ、ただし有効期限が異なる Cookie は、同じ Cookie に属します。
Cookie にはパス - path があり、パス内のどのファイルに Cookie を読み取る権限があるかを示します。
パスは「/」で終わる必要があります。同じ名前の異なるパスを持つ Cookie は、異なる Cookie に属します。
document.cookie = "N1=1; path=/path/";
document.cookie = " N1= 2; path=/path";
document.cookie = "N1=3; path=path/";

上記のコードでは、最初の 2 つの文は絶対パス、つまり相対パスを使用しています。サイトのルート ディレクトリへ Web ページ ディレクトリの場合、3 番目の文では、現在のディレクトリを基準とした相対パスが使用されます。
最初の文と 2 番目の文は同じ権限を表しますが、パス文字列が異なるため、同じ名前の 2 つの Cookie が形成され、混乱が生じやすいため、使用しないことをお勧めします。システムのデフォルトも「/」で終わるためです。
したがって、上記のように 3 つのクッキーがあり、それらは互いに重なり合うことはありません。
path 属性値は大文字と小文字が区別され、ブラウザのアドレス バーの入力と一致している必要があります。
document.cookie = "N1=1; path=/path/";
document.cookie = " N1=2; path=/paTH/";
パス属性値は大文字と小文字が区別されるため、これらは 2 つの異なる Cookie です。アドレス バーに path を入力すると、最初の N1 が読み取られます。 path を入力した場合、2 番目の N1 を読み取ります
パスは読み取れません
期限切れと同様、パスは書き込みのみ可能で、読み取りはできません。
パスは変更できません
期限切れとは異なり、パスを変更しようとすると、実際にはパス値を変更するのではなく、別の Cookie を書き込みます。
パス権限は継承されます
/test/ ディレクトリに Cookie を読み取る権限があると指定した場合、/test/ の下のディレクトリ /test/t/ にも Cookie を読み取る権限が与えられます。
Cookie には有効期限があり、有効期限が切れていなければ、コンピュータを再起動しても Cookie は失われません。有効期限の値が指定されていない場合、ブラウザを閉じると Cookie は期限切れになります。
JS (JavaScript) で有効期限を使用する場合は、次のように Cookie と同時に記述する必要があります。
document.cookie = "clr=red";
document.cookie = "expires="expiresDate;
このように記述すると、2 番目の Cookie の名前は期限切れになります。どちらの Cookie にも有効期限はありません。
Expires が読み取れません
これが、ASP で response.Write request.cookies("cname").expires を使用するときに、JS (JavaScript) で document.cookie を使用するときにエラーが発生する理由です。 、有効期限は表示されません。
有効期限の値には GMT 形式の時刻を使用する必要があります。
var the_date = new Date(" December 31, 2020");
varexpiresDate = the_date.toGMTString(); //GMT 形式に変換します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。