ホームページ ウェブフロントエンド jsチュートリアル JavaScript での document.cookie の使用

JavaScript での document.cookie の使用

Nov 26, 2016 pm 01:27 PM
javascript

ドキュメント オブジェクトに cookie 属性があることはすでにわかっています。しかし、クッキーとは何でしょうか? 「一部の Web サイトでは、ハード ドライブに Cookie と呼ばれる小さなテキスト ファイルに情報が保存されます。」 - MSIE ヘルプ。一般に、Cookie は HTML よりも高度な CGI または同様のファイル、プログラムなどによって作成されますが、JavaScript も Cookie に対する非常に包括的なアクセス権を提供します。

まず、Cookie の基本的な知識を学ぶ必要があります。

すべての cookie は次のようになります: =

この制限は、「JavaScript キーワードは使用できない」などの点を除き、JavaScript の名前付け制限と似ています。 URLエンコードで使用できる文字」。後者は理解するのがさらに困難ですが、名前に文字と数字を使用するだけであれば問題ありません。 の要件も「URL エンコードで使用できる文字のみ」です。

各 Cookie には有効期限があり、コンピューターの時計が有効期限を過ぎると、Cookie は削除されます。 Cookie を直接削除することはできませんが、有効期限を現在時刻よりも早く設定することで間接的に削除できます。

各 Web ページまたは各サイトには独自の Cookie があり、この Cookie はこのサイトの Web ページからのみアクセスでき、同じサイト内の許可されていない領域にはアクセスできません。 Cookie の各「グループ」には合計サイズが指定されています (「グループ」ごとに約 2KB) 最大合計サイズを超えると、新しい Cookie が「定着」できるように、最も古い期限切れの Cookie が最初に削除されます。

次に、documents.cookie 属性の使用方法を学びましょう。

documents.cookie 属性を直接使用するか、変数に値を割り当てるなどの何らかの方法を使用して document.cookie の値を取得すると、現在のドキュメントに存在する Cookie の数とその名前を知ることができます。各 Cookie とその値。たとえば、「document.write(documents.cookie)」をドキュメントに追加すると、結果は次のようになります:

name=kevin; email=kevin@kevin.com; lastvisited=index.html

これは、ドキュメントに 3 が含まれていることを意味します。 Cookie: 名前、電子メール、lastvisited、それらの値はそれぞれ kevin、kevin@kevin.com、index.html です。ご覧のとおり、2 つの Cookie はセミコロンとスペースで区切られているため、 cookieString.split('; ') メソッドを使用して各 Cookie の配列を取得できます (最初に var cookieString = document.cookie を使用します)。

Cookie を設定する方法は、documents.cookie に値を割り当てることです。他の場合の割り当てとは異なり、documents.cookie に値を割り当てても、元の Cookie は削除されず、Cookie が追加されるか、元の Cookie が変更されるだけです。割り当ての形式:

文書.cookie = 'cookieName=' +エスケープ('cookievalue') + ';expires=' +expirationDateObj.toGMTString();

めまいを感じていますか? cookieName は Cookie の名前を表し、cookievalue は Cookie の値を表し、expirationDateObj は有効期限を指定する必要がない場合は、2 行目は必要ありません。有効期限が指定されていない場合、ブラウザはデフォルトでブラウザを閉じた後 (つまり、すべてのウィンドウを閉じた後) に有効期限が切れます。

まず、escape() メソッド: なぜこれを使用する必要があるのでしょうか? Cookie 値の要件が「URL エンコードで使用できる文字のみ使用できる」ためです。 「escape()」メソッドが URL エンコード方式に従って文字列をエンコードすることがわかっているため、「escape()」メソッドを使用して Cookie に出力された値を処理し、「unescape()」を使用するだけで済みます。 Cookie から出力された値を処理します。受信した値は確実です。これら 2 つのメソッドの最も一般的な用途は、Cookie を処理することです。実際、Cookie の設定は「documents.cookie = 'cookieName=cookievalue'」のように簡単ですが、URL に使用できない文字が cookievalue に含まれるのを避けるために、escape() を使用することをお勧めします。

次に、「expires」の前のセミコロン: 注意してください。それはセミコロンだけであり、それ以外は何もありません。

最後に、toGMTString() メソッド: Cookie の有効期限は GMT 形式で設定されます。他の形式の時刻は影響しません。

それでは、実際にやってみましょう。 「name=rose」の Cookie の有効期限が 3 か月になるように設定します。

varexpires = new Date();
expires.setTime(expires.getTime() + 3 * 30 * 24 * 60 * 60 * 1000);
/* 3 か月 x 1 か月は 30 日 x 1 日として扱われます24時間
×1時間60分これは、rose が有効な URL エンコード文字列、つまり 'rose' ==scape('rose') であることがわかっているためです。一般に、Cookie を設定するときにscape() を使用しない場合は、Cookie を取得するときに unescape() を使用する必要はありません。

もう一度やってみましょう: 指定された Cookie の値を見つける関数を書きます。

function getCookie(cookieName) {
var cookieString = document.cookie;
var start = cookieString.indexOf(cookieName + '=');
// 等号を追加する理由は、
// 同じことを避けるためです。 cookieName としての文字列。
if (start == -1) // 見つかりません
return null;
start += cookieName.length + 1;
var end = cookieString.indexOf(';', start);
if (end == - 1 ) return unescape(cookieString.substring(start));
return unescape(cookieString.substring(start, end));
}

この関数は、覚えていない場合は、文字列オブジェクトのいくつかのメソッドを使用します(覚えていない場合は、記憶がないわけではありません。)急いで調べてください。この関数内のすべての if ステートメントには else が含まれていません。これは、条件が true の場合、プログラムは return ステートメントを実行し、関数内で return が見つかった場合は操作が終了するため、else を追加しなくても問題ありません。この関数は、Cookie が見つかった場合は Cookie の値を返し、それ以外の場合は「null」を返します。

次に、設定したばかりの name=rose Cookie を削除する必要があります。

varexpires = new Date();
expires.setTime(expires.getTime() - 1);
documents.cookie = 'name=rose;expires=' +expires.toGMTString();

ご覧のとおり、有効期限を現在の日付より少し早く変更し (ここでは 1 ミリ秒前です)、同じ方法で Cookie を設定して Cookie を削除するだけです。

Cookieを操作するために外国人が書いたjs関数を添付します




///Cookieを設定します

function setCookie(NameOfCookie, value,expirdays)

{

//@Parameters: 3つの変数が使用されますset new Cookie:
//Cookie の名前、保存されている Cookie の値、
//、および Cookie の有効期限が切れる時刻
// これらの行は、日数を有効な日付に変換します

var ExpireDate = new Date。 ();

ExpireDate.setTime(ExpireDate.getTime() + (expiredays * 24 * 3600 * 1000));

// 次の行は、単に「document.cookie」に値を割り当てるために使用されます。 .
// 日付は toGMTstring() 関数を通じて GMT 時間に変換されることに注意してください。

document.cookie = NameOfCookie + "=" +escape(value) +

((expiredays == null) ? "" : ";expires=" + ExpireDate.toGMTString());

}

// /Cookieの値を取得
function getCookie(NameOfCookie)
{

// まずCookieが存在するか確認します
// 存在しない場合、document.cookieの長さは0です
if (document.cookie.length > ; 0)
{

// 次に、cookie 名が document.cookie に存在するかどうかを確認します
// 複数の cookie 値が格納されるため、たとえ document.cookie の長さが 0 でなくても、必要な名前の Cookie が存在します
//したがって、必要な Cookie があるかどうかを確認するためにこのステップが必要です
//begin の変数値が -1 の場合、それは存在しないことを意味します
begin = document .cookie.indexOf(NameOfCookie+"=");
if (begin != -1)
{
// Cookie の存在を示します
begin += NameOfCookie.length+1;// Cookie の初期位置。 value
end = document.cookie.indexOf(";", begin );//終了位置
if (end == -1) end = document.cookie.length;//No の場合、end は、 string
return unescape(document.cookie.substring(begin, end)); }
}

return null;

//Cookie が存在しないので null を返す
}


///Cookie を削除する
function delCookie (NameOfCookie)
{
//この関数は Cookie が設定されているかどうかを確認し、設定されている場合は有効期限を過去の時刻に調整します。
//残りはオペレーティング システムに任せて、Cookie をクリーンアップします。適切な時間



if (getCookie(NameOfCookie)) {www.2cto.com
document.cookie = NameOfCookie + "= " +
"; 期限切れ=木曜日、01-1月-70 00:00:01 GMT";
}
}


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 Dec 17, 2023 pm 02:54 PM

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 はじめに: 技術の継続的な発展により、音声認識技術は人工知能の分野の重要な部分になりました。 WebSocket と JavaScript をベースとしたオンライン音声認識システムは、低遅延、リアルタイム、クロスプラットフォームという特徴があり、広く使用されるソリューションとなっています。この記事では、WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法を紹介します。

WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー Dec 17, 2023 pm 05:30 PM

WebSocketとJavaScript:リアルタイム監視システムを実現するためのキーテクノロジー はじめに: インターネット技術の急速な発展に伴い、リアルタイム監視システムは様々な分野で広く利用されています。リアルタイム監視を実現するための重要なテクノロジーの 1 つは、WebSocket と JavaScript の組み合わせです。この記事では、リアルタイム監視システムにおける WebSocket と JavaScript のアプリケーションを紹介し、コード例を示し、その実装原理を詳しく説明します。 1.WebSocketテクノロジー

JavaScript と WebSocket を使用してリアルタイムのオンライン注文システムを実装する方法 JavaScript と WebSocket を使用してリアルタイムのオンライン注文システムを実装する方法 Dec 17, 2023 pm 12:09 PM

JavaScript と WebSocket を使用してリアルタイム オンライン注文システムを実装する方法の紹介: インターネットの普及とテクノロジーの進歩に伴い、ますます多くのレストランがオンライン注文サービスを提供し始めています。リアルタイムのオンライン注文システムを実装するには、JavaScript と WebSocket テクノロジを使用できます。 WebSocket は、TCP プロトコルをベースとした全二重通信プロトコルで、クライアントとサーバー間のリアルタイム双方向通信を実現します。リアルタイムオンラインオーダーシステムにおいて、ユーザーが料理を選択して注文するとき

WebSocketとJavaScriptを使ったオンライン予約システムの実装方法 WebSocketとJavaScriptを使ったオンライン予約システムの実装方法 Dec 17, 2023 am 09:39 AM

WebSocket と JavaScript を使用してオンライン予約システムを実装する方法 今日のデジタル時代では、ますます多くの企業やサービスがオンライン予約機能を提供する必要があります。効率的かつリアルタイムのオンライン予約システムを実装することが重要です。この記事では、WebSocket と JavaScript を使用してオンライン予約システムを実装する方法と、具体的なコード例を紹介します。 1. WebSocket とは何ですか? WebSocket は、単一の TCP 接続における全二重方式です。

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 Dec 17, 2023 pm 05:13 PM

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 はじめに: 今日、天気予報の精度は日常生活と意思決定にとって非常に重要です。テクノロジーの発展に伴い、リアルタイムで気象データを取得することで、より正確で信頼性の高い天気予報を提供できるようになりました。この記事では、JavaScript と WebSocket テクノロジを使用して効率的なリアルタイム天気予報システムを構築する方法を学びます。この記事では、具体的なコード例を通じて実装プロセスを説明します。私たちは

簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 Jan 05, 2024 pm 06:08 PM

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

JavaScriptでinsertBeforeを使用する方法 JavaScriptでinsertBeforeを使用する方法 Nov 24, 2023 am 11:56 AM

使用法: JavaScript では、insertBefore() メソッドを使用して、DOM ツリーに新しいノードを挿入します。このメソッドには、挿入される新しいノードと参照ノード (つまり、新しいノードが挿入されるノード) の 2 つのパラメータが必要です。

JavaScript で HTTP ステータス コードを簡単に取得する方法 JavaScript で HTTP ステータス コードを簡単に取得する方法 Jan 05, 2024 pm 01:37 PM

JavaScript で HTTP ステータス コードを取得する方法の紹介: フロントエンド開発では、バックエンド インターフェイスとの対話を処理する必要があることが多く、HTTP ステータス コードはその非常に重要な部分です。 HTTP ステータス コードを理解して取得すると、インターフェイスから返されたデータをより適切に処理できるようになります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法と、具体的なコード例を紹介します。 1. HTTP ステータス コードとは何ですか? HTTP ステータス コードとは、ブラウザがサーバーへのリクエストを開始したときに、サービスが

See all articles