LocalStorageを使う際、特定のディレクトリへのアクセス権がないとアクセスが拒否され、参照エラーになってしまう。
これ以外にプライベートブラウズで起きる場合もあるよう。
そのため、LocalStorageを使う場合はtry...catch
を用いて事前に判定する必要がある。
function hasLocalStorage() {
var checkKey = 'haslocalstorage';
try {
window.localStorage.setItem(checkKey, 1);
window.localStorage.getItem(checkKey);
return true;
} catch(e) {
return false;
}
}