Posted at

プライベートモード時のLocalStorageの挙動と判定

More than 1 year has passed since last update.

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