teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

コード文言修正

2018/04/23 02:13

投稿

m.ts10806
m.ts10806

スコア80888

answer CHANGED
@@ -33,7 +33,7 @@
33
33
  if(ls_check()){
34
34
  ls.setItem('test','hoge');
35
35
  }else{
36
- msg.innerHTML = "対応";
36
+ msg.innerHTML = "localStorage非対応";
37
37
  }
38
38
  })();
39
39
  function ls_check(){

3

修正

2018/04/23 02:13

投稿

m.ts10806
m.ts10806

スコア80888

answer CHANGED
@@ -18,7 +18,7 @@
18
18
  # 確認用コード
19
19
 
20
20
  別の角度から確認してみましょう。
21
- ひとまずlocalStorageに固定値を入れてボタンを押したら保存した情報を出力するやつです。
21
+ localStorageに固定値を入れてボタンを押したら保存した情報を出力するものとなっています。
22
22
  ```html
23
23
  <body>
24
24
  <p id="msg"></p>

2

ミニマムコード

2018/04/23 02:10

投稿

m.ts10806
m.ts10806

スコア80888

answer CHANGED
@@ -13,4 +13,42 @@
13
13
  - [モダンブラウザのストレージ容量まとめ](https://www.html5rocks.com/ja/tutorials/offline/quota-research/)
14
14
 
15
15
  ※ひとまず私の環境で本来対象のはずですがIE11ではアラートがでました。Chrome(最新)ではアラートは出ず正常動作しました。
16
-  設定確認してみたのですが、原因は特定できていません。
16
+  設定確認してみたのですが、原因は特定できていません。
17
+
18
+ # 確認用コード
19
+
20
+ 別の角度から確認してみましょう。
21
+ ひとまずlocalStorageには固定値を入れてボタンを押したら保存した情報を出力するやつです。
22
+ ```html
23
+ <body>
24
+ <p id="msg"></p>
25
+ <button onclick="clickBtn();">Click</button>
26
+
27
+ ```
28
+
29
+ ```js
30
+ var ls = null;
31
+ (window.onload = function() {
32
+ var msg = document.getElementById("msg");
33
+ if(ls_check()){
34
+ ls.setItem('test','hoge');
35
+ }else{
36
+ msg.innerHTML = "未対応";
37
+ }
38
+ })();
39
+ function ls_check(){
40
+
41
+ if (!window.localStorage) {
42
+ return false;
43
+ }else{
44
+ ls = localStorage;
45
+ return true;
46
+ }
47
+ }
48
+ function clickBtn(){
49
+ if(ls_check()){
50
+ msg.innerHTML = ls.getItem('test');
51
+ }
52
+ }
53
+
54
+ ```

1

修正

2018/04/23 02:09

投稿

m.ts10806
m.ts10806

スコア80888

answer CHANGED
@@ -5,6 +5,7 @@
5
5
  alert("お使いのブラウザはlocalstorageに対応してません。");
6
6
  }
7
7
  ```
8
+ 非対応は多くないとはいえ、ブラウザ依存の機能にもなるため、「使えない場合」の対応はnoscriptと同じような意味合いでおまじないのように入れておいても良いですね。
8
9
 
9
10
  設定によって使えなくなっている可能性がないわけではないですが、
10
11
  下記記事も参考にしてみてください。