実際には、Cookie の更新は Cookie の置換とは少し異なります。Cookie に入れたい新しい値は、Cookie が既に存在するかどうか、存在する場合はその内容に多少依存するからです。これは、既存の Cookie の置換を作成する前に、既存の Cookie を読み取る必要があることを意味します。
注意すべき点は、Cookie を読み取るときに、既存の Cookie の有効期限がいつ切れるか、Cookie が特定のフォルダーに制限されているかどうかを知る方法がないことです。ドメイン全体で利用可能。 Cookie を変更する場合は、新しい保存期間を設定する必要があります。また、同じドメインまたはパスのオプションが毎回適用されるように、ページ内の Cookie の範囲を追跡する必要があります。 Cookie を置き換えるのではなく更新する場合、実際に読み取ることができるのは、Cookie に保存されているデータの実際の値だけです。
この例では、「accesscount」という Cookie を使用して、訪問者がページを訪問する回数をカウントします。各訪問の間隔は 7 日以内です。 2 回の訪問の間隔が 7 日を超えると、Cookie の有効期限が切れ、次の訪問は 0 から再開されます。前の例では allCookies() 関数と writeCookie() 関数を使用したため、実際に更新を実行するには、コードの最後の 2 行だけが必要です。
コード例は次のとおりです:
var cookie; allCookies = function() { var cr, ck, cv; cr = []; if (document.cookie != '') { ck = document.cookie.split('; '); for (var i=ck.length - 1; i>= 0; i--) { cv = ck.split('='); cr[ck[0]]=ck[1]; } } return cr; }; writeCookie = function(cname, cvalue, days,opt) { var dt, expires, option; if (days) { dt = new Date(); dt.setTime(dt.getTime()+(days*24*60*60*1000)); expires = "; expires="+dt.toGMTString(); } else expires = ''; if (opt) { if ('/' = substr(opt,0,1)) option = "; path="+opt; else option = "; domain="+opt; } else option = ''; document.cookie = cname+"="+cvalue+expires+option; } cookie = allCookies(); if (cookie.accesscount != null) writeCookie('mycookie', cookie.accesscount + 1,7); else writeCookie('mycookie', 1,7);
関連する推奨事項: 「javascript チュートリアル 」
この記事は JavaScript での Cookie の更新に関するものです。困っている人たち!
以上がJavaScript で Cookie を更新するにはどうすればよいですか? (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。