プライベートモード時は、LocalStorageが全く使えないと思っていたが、ブラウザによって挙動が違かったのでまとめてみた。
| ブラウザ(プライベートモード) | 使用可否 |
|---|---|
| PC Chrome | ○ |
| PC Safari | ☓ |
| iOS Safari | ☓ |
| Android Chrome | ○ |
と、SafariとChromeで対応が違うので注意。
プライベートモード時のLocalStorage使用可能かどうか判定方法
NG例
以下だと、プライベートモード時でもグローバルに定義されているのでtrueになってしまう。
if('localStorage' in window){
alert('✅LocalStorage使えるよ');
}
こうするべき
try-catch文でやるのが正解。
try {
localStorage.test = 'hoge';
alert('✅LocalStorage使えるよ');
} catch(e) {
alert('❌LocalStorage使えない');
console.error(e);
}