
このCookieの関数を、使い方はそのままでWebStorageに保存するように変えるにはどうすればいいでしょうか。よろしくお願いします。
function setCookie(name, value, days) {
const date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
const expires = "expires=" + date.toUTCString();
document.cookie = name + "=" + value + ";" + expires + ";path=/";
}
function getCookie(name) {
const nameEQ = name + "=";
const ca = document.cookie.split(';');
for (let i = 0; i < ca.length; i++) {
let c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1, c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
}
return null;
}
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
cookieは保存されている情報をWEBにアクセスしたタイミングで先行しておくることがきます
かりにlocalStorageを使用したとしてもWEB側でそのデータに直接アクセスできないので代替性は微妙です。cookieは普通js-cookieなどのライブラリを使えばそれほど苦にはならないと思いますが・・
No.3
- 回答日時:
こんばんは
WebStorageとCookieの違いの一つに、期限を設定しないということがあります。
WebStorage(→localStorage)の場合は、削除しない限りデータは保持し続けられます。
(ですので、引数daysの指定は無視します)
◇ ご提示の関数を無条件で書き換えるので良ければ、
function setCookie(name, value, days) {
localStorage.setItem(name, value);
}
function getCookie(name) {
return localStorage.getItem(name);
}
◇ localStorageが使えるかの環境をチェックして、使えるならlocalStorageをそうでなければCookieをというように動的に書き換えるなら、ご提示の関数に加えて・・
if(!!window.localStorage){
setCookie = (k, v) => localStorage.setItem(k, v);
getCookie = k => localStorage.getItem(k);
}
のような感じで実現できるでしょう。
※ 実は上記のチェックは簡易的なものなので、厳密なチェックは行っていません。(例えば、ユーザがブロックしているような場合)
厳密にチェックを行いたい場合は、以下にある検出関数をご利用ください。
https://developer.mozilla.org/ja/docs/Web/API/We …
No.1
- 回答日時:
Webブラウザ上に表示したページからクライアント側に情報を保存できるのはCookieに対してだけです。
この制約があるため、Webブラウザ上に表示したページからWebStrage上に情報を保存することはできません
Cookie以外への保存は、利用者が意思を持って自身の操作で情報を保存やコピペしてもらうことしかできません
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
jsonテキストデータの並び替え...
-
jsで質問です。 formをsubmitし...
-
スマホ上で、左右スワイプで次...
-
Outlookのアカウントがあるとメ...
-
オブジェクト配列の各メンバを...
-
初心者です。gulpでコンパイル...
-
タグを教えてください。
-
ラジオボタンを複数選択したと...
-
2025年相性がいい人のサイトの...
-
CookieをWebStoeageに変える
-
Adobe acrobat proでフォームを...
-
jqueryのselect2で検索欄の文字...
-
<tr>指定した表の行要素をボ...
-
食材の期限を管理するためにGAS...
-
ビデオのJSについて
-
鍵盤アプリで、スマホの画面に...
-
<div>のタッチ状態を維持したま...
-
jQueryでシンセサイザーを作っ...
-
プログラミング 学習
-
HTMLでサブフレームから親のス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スマホ上で、左右スワイプで次...
-
jsonテキストデータの並び替え...
-
jqueryのselect2で検索欄の文字...
-
jQueryでシンセサイザーを作っ...
-
Adobe acrobat proでフォームを...
-
階層別の組織図の自動作成について
-
ラジオボタンを複数選択したと...
-
<div>のタッチ状態を維持したま...
-
2025年相性がいい人のサイトの...
-
<tr>指定した表の行要素をボ...
-
CookieをWebStoeageに変える
-
画面遷移を行わずに同一ページ...
-
タグを教えてください。
-
GASでチェックボックスを一括of...
-
イラストレーター、縦中横のシ...
-
jsで質問です。 formをsubmitし...
-
ビデオのJSについて
-
初心者です。gulpでコンパイル...
-
ボタンを押したあとに画像を表...
-
Outlookのアカウントがあるとメ...
おすすめ情報