document.cookie="userId=828";
複数の名前と値のペアを一度に保存する場合は、セミコロンとスペース (;) を使用して区切ることができます。例:
document.cookie= "userId=828; userName=hulk";
Cookie の名前や値にはセミコロン (;)、カンマ (,)、等号 (=) およびスペースを使用できません。 Cookie の名前に
を実行するのは簡単ですが、保存される値は未定義です。これらの値を保存するにはどうすればよいでしょうか?この方法では、escape() 関数を使用して
をエンコードします。これにより、一部の特殊記号を 16 進数で表現できます。たとえば、スペースは「20%」としてエンコードされ、
cookie の値を変更し、この解決策を使用すると中国語の文字化けの発生も回避できます。例:
document.cookie="str=scape("I love ajax");
escape を使用する場合:
document.cookie="str=I love ajax"; ( ) エンコード後、値を取り出してデコードする必要があります。
これは以前紹介しました。
document.cookie はプロパティのように見えますが、異なる値を割り当てることができます。ただし、
の割り当てを変更しても、次の 2 つのステートメントを連続して実行することは意味しません。 🎜>document.cookie="userName=hulk";
現時点では、ブラウザーは userId と userName という 2 つの Cookie を保持するため、document.cookie に値を割り当てることは、
を実行することに似ています。次のようなステートメント:
document.addCookie("userId=828");
document.addCookie("userName=hulk");
実際、ブラウザは次のように Cookie を設定します。 Cookie の値を変更するには、
値を再割り当てするだけです。例:
document.cookie="userId=929";
これにより、userId という名前の Cookie 値が 929 に設定されます。
Cookie の値を取得する
Cookie の値を取得する方法を説明します。 Cookie の値は document.cookie から直接取得できます:
var strCookie=document.cookie;
これにより、セミコロンで区切られた複数の名前と値のペアで構成される文字列が取得されます。このドメイン名の下に cookie
があります。例:
図 7.1 は、出力された Cookie の値を示しています。すべての Cookie 値を一度に取得することしかできないことがわかりますが、Cookie
名を指定して指定された値を取得することはできません。これは、Cookie 値の処理で最も面倒な部分です。ユーザーはこの文字列を自分で分析して
指定された Cookie 値を取得する必要があります。たとえば、userId の値を取得するには、次のように実行します。
この方法で 1 つの Cookie の値を取得します。
同様のメソッドを使用して、1 つ以上の Cookie の値を取得できます。主な手法はやはり文字列と配列の関連操作です。
Cookie の有効期限を設定します
これまでのところ、すべての Cookie はシングルセッション Cookie です。つまり、これらの Cookie はブラウザを閉じると失われます。 > 対応するハードディスクファイルを作成せずにメモリに保存するだけです。
実際の開発では、ユーザーのログイン状態の保存など、Cookieを長期間保存する必要があることがよくあります。これは、次のオプションを使用して実現できます:
document.cookie="userId=828;expires=GMT_String";
GMT_String は GMT 形式の時刻文字列であり、このステートメントは userId Cookie を
GMT_String で表される有効期限。この時間が経過すると、Cookie は消えてアクセスできなくなります。例: Cookie
の有効期限が 10 日後に切れるように設定したい場合は、次のように実行できます:
Cookie を削除
Cookie を削除するには、有効期限を過去の時刻に設定できます。例:
Cookie にアクセスできるパスを指定します
デフォルトでは、Cookie がページ上で作成された場合、ディレクトリ内の他のページページが配置されている場所にもアクセスできます
Cookie。このディレクトリの下にサブディレクトリがある場合は、そのサブディレクトリからもアクセスできます。たとえば、
www.xxxx.com/html/a.html で作成された Cookie は、www.xxxx.com/html/b.html または
www.xxx で使用できます。 com /html/some/c.html にはアクセスできますが、www.xxxx.com/d.html にはアクセスできません。
Cookie がアクセスできるディレクトリを制御するには、path パラメーターを使用して Cookie を設定する必要があります。構文は次のとおりです:
document.cookie="name=value; path=cookieDir"; > ここで、cookieDir は Cookie にアクセスできるディレクトリを表します。例:
document.cookie="userId=320; path=/shop";
は、現在の Cookie がショップ ディレクトリでのみ使用できることを意味します。
Web サイト全体で Cookie を使用できるようにする場合は、ルート ディレクトリとして cookie_dir を指定できます。例:
document.cookie="userId=320; path=/";
Cookie にアクセスできるホスト名
は、同じドメイン内の異なるホストを参照します。たとえば、www.google.com と gmail.google.com は
2 つの異なるホスト名。デフォルトでは、あるホストで作成された Cookie に別のホストでアクセスすることはできません。
ただし、構文形式は次のとおりです:
document.cookie ="name=value;domain=" cookieDomain";
Google を例に挙げます。クロスホスト アクセスを実現するには、次のように記述できます:
document.cookie="name=value;domain=.google.com";
このように、 google.com 下のすべてのホストが Cookie にアクセスできます。
包括的な例: ユニバーサル Cookie 処理関数の構築
Cookie 処理プロセスは比較的複雑であり、いくつかの類似点があります。したがって、Cookie の一般的な
操作を完了するためにいくつかの関数を定義することで、コードの再利用を実現できます。一般的な Cookie 操作とその関数の実装を以下に示します。
1. Cookie を追加します: addCookie(name, value,expiresHours)
この関数は、Cookie 名、Cookie 値、および有効期限が切れる時間の 3 つのパラメーターを受け取ります。ここでは、expiresHours が
0 の場合、有効期限は設定されない、つまりブラウザを閉じると Cookie が自動的に消えることが合意されています。この関数は次のように実装されます:
2.指定された名前の Cookie 値を取得します: getCookie(name)
この関数は、name という名前の Cookie 値を返します。その実装は次のとおりです。
3.指定された名前の Cookie を削除します: deleteCookie(name)
この関数は、指定された名前の Cookie を削除できます