JavaScript
localStorage

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