
この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も見ています
-
JavaScriptを本で勉強しています。 ほんとのほんとの序盤なのですが、 本の内容に、vscod
JavaScript
-
jsで質問です。 formをsubmitしてサーバー側で処理が行われて処理が完了したら、フロント側で
JavaScript
-
至急助けてください!!!あと2時間しかないです! ボタンを押したら0ランプが点灯し、コンマ5秒後に1
その他(プログラミング・Web制作)
-
-
4
検索エンジンはなくなる?
SEO
-
5
日立製作所とか富士通ってIT企業なんですか? メーカーじゃないんですか? メーカーとIT企業(SIe
システム
-
6
Javascript で条件分岐を使い共通コードをまとめる方法が分かりません
JavaScript
-
7
Webサイトの「デザインのみ(コーディング不要)」を依頼されました。 「レスポンシブデザイン」を希望
HTML・CSS
-
8
プログラミングに興味があるのですが、作りたいものはありません。 ゲーム機とかパソコンの中身(ソースコ
その他(プログラミング・Web制作)
-
9
htmlが簡単に作成できるアプリについて
HTML・CSS
-
10
プログラマー達は何故、プログラムを入れるフォルダーに容量制限があるのを知らない?
C言語・C++・C#
-
11
ラジオボタンを複数選択したときの条件分岐をしたい
JavaScript
-
12
submitで思うようにページが遷移しない
PHP
-
13
HTML/CSSを使って写真のようなレイアウトにするにはどのようにすれば良いですか。
HTML・CSS
-
14
BASIC認証のフォームをデザインしたい
PHP
-
15
Windows10の不調
Windows 10
-
16
プログラミングのやり方ざっくりでいいから教えて
その他(プログラミング・Web制作)
-
17
Cのプログラムからアクセスできないファイル名の一括変更方法
C言語・C++・C#
-
18
EJSを仕事でなんとなくで使っているので、もっと体系的に学びたいのですが、おすすめの本やサイトを教え
HTML・CSS
-
19
C言語のことです。写真(見にくくてすいません)の下のプログラムを実行したいのですが四行目がおかしいと
C言語・C++・C#
-
20
windows 10からwindows 7にバージョンダウンしたのですがインターネットに接続しません
Windows 10
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<tr>指定した表の行要素をボ...
-
jsonテキストデータの並び替え...
-
ラジオボタンを複数選択したと...
-
Outlookのアカウントがあるとメ...
-
ボタンを押したあとに画像を表...
-
【GAS】WEBアプリでハイパーリ...
-
React と Electron でデスクト...
-
スマホ上で、左右スワイプで次...
-
以前の質問だと、どの条件でも...
-
セレクトボックスで配列を呼び...
-
タグを教えてください。
-
jsで質問です。 formをsubmitし...
-
2025年相性がいい人のサイトの...
-
CookieをWebStoeageに変える
-
Adobe acrobat proでフォームを...
-
jqueryのselect2で検索欄の文字...
-
食材の期限を管理するためにGAS...
-
ビデオのJSについて
-
鍵盤アプリで、スマホの画面に...
-
<div>のタッチ状態を維持したま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スマホ上で、左右スワイプで次...
-
jsonテキストデータの並び替え...
-
jQueryで同じクラス名のものを...
-
jqueryのselect2で検索欄の文字...
-
jsで質問です。 ボタンが二つ存...
-
読み込んだQRコードをフォーム...
-
二次元配列を使って順位をだす...
-
ボタンを押したあとに画像を表...
-
【JS】selectでchangeした時の...
-
Cookieに保存されない
-
初心者です。gulpでコンパイル...
-
【Google Apps Script】「ライ...
-
Adobe acrobat proでフォームを...
-
HTMLでサブフレームから親のス...
-
フォームが空欄の時にフォーム...
-
セレクトを全て選択されていな...
-
GASでチェックボックスを一括of...
-
jQueryでのレスポンシブが綺麗...
-
ブックマークレットについて
-
jsで、配列内の文章を改行する...
おすすめ情報