Javascript操作クッキー詳細分析
21393 ワード
Javascript操作クッキー詳細分析
Javaerたちは、JavaEEでクッキー(
参考資料:https://www.cnblogs.com/bellow/p/4962374.html
内容の簡略化、修正、ドキュメントのフォーマットの調整を大量に行いました.
クッキーの設定
1.メモリクッキーの設定
一度に複数のクッキーを設定し、セミコロンでスペース(;)ぶんかつ
(使用は推奨されず、
2.ディスククッキーの設定
ディスククッキーを設定するには、
3.補充は、クッキーまたはブラウザの違いを無効にするか、またはブラウザがjsをローカルで操作しないために実験に失敗する可能性がある . document.クッキーは属性のように見え、異なる値を与えることができます.しかし、一般的な属性とは異なり、その付与値を変更することは、 などの元の値を失うことを意味しない.同じクッキー名は、前者の値 を上書きする.は、クッキーのnameとしてキーワード
クッキーの読み込み
クッキーの削除
クッキーを削除するには、その有効期限を過去の時間に設定できます.
クッキーへのアクセス可能なパスの指定
1.pathの指定
デフォルトでは、ページにクッキーが作成されている場合、ページが存在するディレクトリの
例えば は、同じディレクトリ .親ディレクトリ にアクセスすることはできない.
クッキーがアクセスできるディレクトリを制御するには、pathパラメータを使用してクッキーを設定する必要があります.構文は次のとおりです.
ここで、cookieDirは、cookieにアクセス可能なディレクトリを表す.例:
現在のクッキーはshopディレクトリでしか使用できないことを示します.
クッキーをWebサイト全体で利用できるようにするには、クッキーをdirはルートディレクトリとして指定します.たとえば、次のようにします.
2.domainの指定
アクセス可能なクッキーを指定するホスト名とパスは、同じドメインの異なるホストを指します.たとえば、
ただし、domainパラメータを使用して、構文フォーマットは次のとおりです.
Googleを例にとると、ホスト間アクセスを実現するには、次のように書くことができます.
これで、すべてのgoogle.comの下のホストはこのクッキーにアクセスできます.
に付随
原生jsのAPIが不便なため、ここではよく使われるfunctionをカプセル化していますクッキー を追加
この関数は、クッキー名、クッキー値、および何時間後に期限切れになるかの3つのパラメータを受信します.ここでexpiresHoursが0の場合、有効期限は設定されません.つまり、ブラウザが閉じたときにクッキーが自動的に消えます.指定名のクッキー値 を取得する
この関数はnameという名前のクッキー値を返し、存在しない場合は空を返します.指定された名前のクッキーを削除する 指定した名前のクッキーを削除できます
Javaerたちは、JavaEEでクッキー(
javax.servlet.http .Cookie
)を操作するためのインタフェースが定義されていることを知っていますが、フロントエンドのjsについては、クッキーをどのように操作しているのでしょうか.参考資料:https://www.cnblogs.com/bellow/p/4962374.html
内容の簡略化、修正、ドキュメントのフォーマットの調整を大量に行いました.
クッキーの設定
1.メモリクッキーの設定
cookie
はブラウザプロセスのメモリに保存され、ブラウザを閉じて消えるexpires=
を設定しないでください.コードは次のとおりです.// cookie (;)、 (,)、 (=) ,
// , , escape ,
document.cookie="str=" + escape("I love ajax");
一度に複数のクッキーを設定し、セミコロンでスペース(;)ぶんかつ
(使用は推奨されず、
expires=
の場合は失効)document.cookie="userId=" + escape(828) + "; " + "userName=" + escape("hulk");
2.ディスククッキーの設定
cookie
はディスクに保存されており、ブラウザを閉じた後もディスククッキーを設定するには、
expires=
を追加します.コードは次のとおりです.// :document.cookie="userId=828; expires=GMT_String";
// GMT_String GMT , ,cookie ,
//
var date = new Date();
var expiresDays = 10;
// date 10
date.setTime(date.getTime() + expiresDays*24*3600*1000);
document.cookie = "str=" + escape("I love ajax") + "; " + "expires=" + date.toGMTString();
3.補充
// cookie, userId userName
// document.cookie document.addCookie()
document.cookie = "userId=" + escape(828);
document.cookie = "userName=" + escape("hulk");
document.cookie = "userName=" + escape("hulk");
//
document.cookie = "userName=" + escape("stone");
expires
、path
を使用しないことが望ましい.クッキーの読み込み
document.cookie
を使用してすべてのクッキー値を取得し、結果は文字列であり、文字列切り取りによって対応する値を取得します.document.cookie = "userId=" + escape(9527);
document.cookie = "userName=" + escape("Stone Wang; ");
var strCookie = document.cookie;
alert(strCookie); // :userId=9527; userName=Stone%20Wang%3B%u941C%u5B2C%u6553
alert(unescape(strCookie));// :userId=9527; userName=Stone Wang;
// : , ,
クッキーの削除
クッキーを削除するには、その有効期限を過去の時間に設定できます.
<script language="JavaScript" type="text/javascript">
//
var date = new Date();
// date
date.setTime(date.getTime() - 10000);
// userId cookie
document.cookie="userId=828; expires=" + date.toGMTString();
</script>
クッキーへのアクセス可能なパスの指定
1.pathの指定
デフォルトでは、ページにクッキーが作成されている場合、ページが存在するディレクトリの
もクッキーにアクセスできます.このディレクトリの下にサブディレクトリがある場合は、
にもアクセスできます.例えば
www.xxx.com/html/x.html
で作成されたクッキーは、www.xxx.com/html/x.html
またはサブディレクトリwww.xxx.com/html/sub/x.html
によってアクセスすることができるwww.xxx.com/x.html
およびその他のディレクトリwww.xxx.com/html/other/x.html
によってクッキーがアクセスできるディレクトリを制御するには、pathパラメータを使用してクッキーを設定する必要があります.構文は次のとおりです.
document.cookie="name=value; path=cookieDir";
ここで、cookieDirは、cookieにアクセス可能なディレクトリを表す.例:
document.cookie="userId=320; path=/shop";
現在のクッキーはshopディレクトリでしか使用できないことを示します.
クッキーをWebサイト全体で利用できるようにするには、クッキーをdirはルートディレクトリとして指定します.たとえば、次のようにします.
document.cookie="userId=320; path=/";
2.domainの指定
アクセス可能なクッキーを指定するホスト名とパスは、同じドメインの異なるホストを指します.たとえば、
www.google.com
とgmail.google.com
は、2つの異なるホスト名です.デフォルトでは、1つのホストで作成されたクッキーは、別のホストではアクセスできません.ただし、domainパラメータを使用して、構文フォーマットは次のとおりです.
document.cookie="name=value; domain=cookieDomain";
Googleを例にとると、ホスト間アクセスを実現するには、次のように書くことができます.
document.cookie="name=value;domain=.google.com";
これで、すべてのgoogle.comの下のホストはこのクッキーにアクセスできます.
に付随
原生jsのAPIが不便なため、ここではよく使われるfunctionをカプセル化しています
この関数は、クッキー名、クッキー値、および何時間後に期限切れになるかの3つのパラメータを受信します.ここでexpiresHoursが0の場合、有効期限は設定されません.つまり、ブラウザが閉じたときにクッキーが自動的に消えます.
<script language="JavaScript" type="text/javascript">
function addCookie(name, value, expiresHours) {
var cookieString = name + "=" + escape(value);
//
if(expiresHours > 0) {
var date = new Date();
date.setTime(date.getTime() + expiresHours*3600*1000);
cookieString = cookieString + "; expires=" + date.toGMTString();
}
document.cookie = cookieString;
}
script>
この関数は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>
<script language="JavaScript" type="text/javascript">
function deleteCookie(name) {
var date = new Date();
date.setTime(date.getTime() - 10000);
document.cookie = name + "=v; expires=" + date.toGMTString();
}
script>