[解決済み] localStorageが使用可能かどうか確認する
2023-01-07 06:21:03
質問
のチェックについて、多くの質問があることは承知しています。
localStorage
をチェックすることについては多くの質問がありましたが、誰かがブラウザで手動でそれをオフにした場合はどうなるのでしょうか? 以下は、私がチェックに使っているコードです。
localStorage.setItem('mod', 'mod');
if (localStorage.getItem('mod') != null){
alert ('yes');
localStorage.removeItem('mod');
} else {
alert ('no');
}
単純な機能で、動作します。 しかし、Chromeの設定で「データを保存しない」オプション(正確な名称は覚えていません)を選択すると、この関数を実行しようとしたときに何も表示されません。
Uncaught Error: SecurityError: DOM Exception 18
. ということは、その人が完全にオフにしているかどうかを確認する方法はあるのでしょうか?
UPDATE: これは私が試した2番目の機能ですが、まだ反応(アラート)がありません。
try {
localStorage.setItem('name', 'Hello World!');
} catch (e) {
if (e == QUOTA_EXCEEDED_ERR) {
alert('Quota exceeded!');
}
}
どのように解決するのですか?
使用方法
modernizr
のアプローチ(私の関数名をもっと良いものに変えたほうがいいかもしれません)を使ってください。
function lsTest(){
var test = 'test';
try {
localStorage.setItem(test, test);
localStorage.removeItem(test);
return true;
} catch(e) {
return false;
}
}
if(lsTest() === true){
// available
}else{
// unavailable
}
他の方法ほど簡潔ではありませんが、これは互換性を最大化するために設計されているからです。
元のソースは https://github.com/Modernizr/Modernizr/blob/master/feature-detects/storage/localstorage.js
動作例です。 http://jsfiddle.net/6sm54/2/
関連
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] JavaScriptで空文字列/未定義文字列/null文字列をチェックするにはどうすればよいですか?
-
[解決済み] HTML5のlocalStorageにオブジェクトを格納する方法は?
-
[解決済み] JavaScriptで変数が文字列かどうかをチェックする
-
[解決済み] javascriptでlocalStorageをクリアする?
-
[解決済み】jQueryでチェックボックスがチェックされているかどうかを確認するにはどうすればよいですか?
-
[解決済み] react-routerのハッシュフラグメントからクエリパラメータを取得する
-
[解決済み] Javascript の parseInt() で先頭のゼロを削除する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ローカルストレージとCookieの比較
-
[解決済み] Safariでhtml5 localStorageエラー。"QUOTA_EXCEEDED_ERR: DOM Exception 22: An attempt was made to add something to storage that exceeded the quota." と表示されます。
-
[解決済み] Google maps API V3 - 同一地点に複数のマーカーを設置する。
-
[解決済み] 文字列がすべて同じ部分文字列で構成されているかどうかを調べるにはどうすればよいですか?
-
[解決済み] reactのrender関数でdynamic hrefを作成するには?
-
[解決済み] WebStormで未解決の変数が大量にある場合の警告に対処する方法は?
-
[解決済み] Reactコンポーネントでthis.setStateを複数回使用するとどうなりますか?
-
[解決済み] react-routerのハッシュフラグメントからクエリパラメータを取得する
-
[解決済み] CORS: 認証モードは 'include' です。
-
[解決済み] JSHintの'+'前の改行不良の説明