プライベートモード時は、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);
}