[解決済み] ブラウザがHTML5ローカルストレージをサポートしているかどうかを検出する方法
2023-05-02 15:50:38
質問
次のコードで警告を表示します。
ls exist
をIE7で表示します。
if(window.localStorage) {
alert('ls exists');
} else {
alert('ls does not exist');
}
IE7はローカルストレージに対応していないのですが、これでも対応していると警告しています。おそらくこれは、IE9 の開発者ツールを使用して、IE7 のブラウザ モードとドキュメント モードで IE9 を使用しているためでしょう。あるいは、これは LS がサポートされているかどうかをテストするための間違った方法かもしれません。正しい方法は何ですか?
また、私はいくつかの HTML5 機能しか使用しておらず、それらのいくつかのもののサポートを検出するためだけに大きなスクリプトをロードする価値がないので、Modernizr を使用したくありません。
どのように解決するのですか?
modernizrを使う必要はありませんが、modernizrのメソッドで
localStorage
がサポートされているかどうかを検出するために使用できます。
githubのmodernizr
のテスト
localStorage
// In FF4, if disabled, window.localStorage should === null.
// Normally, we could not test that directly and need to do a
// `('localStorage' in window) && ` test first because otherwise Firefox will
// throw bugzil.la/365772 if cookies are disabled
// Also in iOS5 & Safari Private Browsing mode, attempting to use localStorage.setItem
// will throw the exception:
// QUOTA_EXCEEDED_ERRROR DOM Exception 22.
// Peculiarly, getItem and removeItem calls do not throw.
// Because we are forced to try/catch this, we'll go aggressive.
// Just FWIW: IE8 Compat mode supports these features completely:
// www.quirksmode.org/dom/html5.html
// But IE8 doesn't support either with local files
Modernizr.addTest('localstorage', function() {
var mod = 'modernizr';
try {
localStorage.setItem(mod, mod);
localStorage.removeItem(mod);
return true;
} catch(e) {
return false;
}
});
現在のソースコードで更新
関連
-
[解決済み] 要素外でのクリックを検出するにはどうすればよいですか?
-
[解決済み] Webフォームのフィールド/入力タグでブラウザのオートコンプリートを無効にするにはどうすればよいですか?
-
[解決済み] HTML5のlocalStorageにオブジェクトを格納する方法は?
-
[解決済み] ローカルストレージとCookieの比較
-
[解決済み] HTML5/Canvas/JavaScriptを使用してブラウザ内のスクリーンショットを撮影する
-
[解決済み] Safari、Chrome、IE、Firefox、Operaのブラウザを検出する方法は?
-
[解決済み] HTML5 ローカルストレージとセッションストレージの比較
-
[解決済み] ExtJS 4のイベントハンドリングについて
-
[解決済み] JavaScriptで:hoverのCSSプロパティを変更する
-
[解決済み] JavaScriptの文字列プリミティブとStringオブジェクトの違いは何ですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] javascriptで2つの数値を連結する方法は?
-
[解決済み] URL/アドレスバーからJavascriptの関数を呼び出す
-
[解決済み] TypeScriptのdeclare classとinterfaceの違いとは?
-
[解決済み] アサインの左側にJavascriptのオブジェクトブラケット表記({ ナビゲーション } =)があります。
-
[解決済み] 文字列がhtmlであるかどうかをチェックする
-
[解決済み] JavaScriptのtoString()関数をオーバーライドして、デバッグ用に意味のある出力を提供することは可能でしょうか?
-
[解決済み] AJAX Mailchimp サインアップフォームの統合
-
[解決済み] イテレータでmap()を使用する
-
[解決済み] JavaScriptでDIVを表示・非表示にするには?
-
[解決済み] localStorageが使用可能かどうか確認する