JavaScriptで複数のCookieを設定する方法をわかりやすく解説
JavaScriptで複数のCookieを設定するには、document.cookieプロパティに対して、Cookieごとに1行ずつ代入を行います。セミコロン(;)はCookie同士を区切るために使われる記号ですが、設定時には個別に代入するのが基本です。
複数のCookieを設定・一覧表示・削除するサンプルコード
以下のコードでは、「追加」「一覧表示」「削除」の3つのボタンを使って、複数のCookie操作を実際に試すことができます。「ADD」ボタンを押すたびに新しいCookieが作成され、「LIST COOKIES」ボタンで現在保存されているすべてのCookieを確認できます。
<!DOCTYPE html>
<html>
<head>
<script>
var num=1;
function addCookie() {
document.cookie=num+"="+num;
num++;
}
function listCookies() {
var result = document.cookie;
document.getElementById("list").innerHTML=result;
}
function removeCookies() {
var res = document.cookie;
var multiple = res.split(";");
for(var i=0;i<multiple.length;i++) {
var key = multiple[i].split("=");
document.cookie=key[0]+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC";
}
}
</script>
</head>
<body>
<button onclick='addCookie()'>ADD</button><br>
<button onclick='listCookies()'>LIST COOKIES</button><br>
<button onclick='removeCookies()'>REMOVE</button>
<h1>Cookies List</h1>
<p id="list"></p>
</body>
</html>コードのポイント
- addCookie(): 変数numをキー名と値の両方に使用し、呼び出されるたびに新しいCookie(例:「1=1」「2=2」…)を作成します。
- listCookies(): document.cookieを読み取り、現在保存されているすべてのCookieを画面に表示します。
- removeCookies(): split(";")でCookieを分割し、各Cookieの有効期限を1970年1月1日に設定することで、すべてのCookieを削除します。
document.cookieの仕組み
document.cookieは文字列として扱われ、読み書きの動作が異なる点に注意が必要です。
・書き込み時: 代入しても既存のCookieは上書きされず、新しいCookieが追加されます。
・読み取り時: 「名前=値」のペアがセミコロン(;)区切りで連結された1つの文字列が返されます。
この特性を利用することで、同じページ上に複数のCookieを簡単に管理できるのです。
-
JavaScriptで配列をセット(Set)に変換する方法|new Set()の使い方を解説
JavaScriptでは、new Set() コンストラクタを使うことで、配列を簡単にセット(Setオブジェクト)へ変換できます。セットは同じ値を自動的に1つだけ保持する性質を持つため、配列から重複した要素を取り除きたい場合にも非常に便利です。 配列をセットに変換するサンプルコード 以下は、ボタンをクリックすると配列がセットに変換されて表示される、完全なHTMLサンプルです。 <!DOCTYPE html> <html lang=ja> <head> <meta charset=UTF-8 /> <meta name=viewport co
-
JavaScriptでドキュメントの読み込み状態(readyState)を確認する方法
JavaScriptでドキュメント(ページ)の読み込みが完了しているかどうかを確認するには、document.readyStateプロパティを使用します。このプロパティは、現在のドキュメントの読み込み状況に応じて以下の3つの文字列を返します。loading … ドキュメントがまだ読み込み中の状態interactive … ドキュメントの解析は完了したが、画像などのサブリソースは still 読み込み中の状態complete … ドキュメントとすべてのサブリソースの読み込みが完了した状態以下は、ボタンをクリックしたタイミングでdocument.readyStateの値を判定し、ページの読み込み状