ユーザーの 1 人から苦情があり、いくつかのテストを実行した結果、Firefox 15 および 16 (およびおそらく古いバージョン) では、Cookie を無効にすると localStorage も無効になるようになっているようです。アクセスしようとするたびに、ポリフィルを作成することさえできませwindow.localStorage
んError: The operation is insecure.
try catch をスローすると、それが無効になっているかどうかを確認できますが、変数を独自のソリューションに置き換えることはできません。FF は変数の設定を無視し、アクセスしようとすると同じエラーをスローするため、次のクイック ポリフィルは機能しません。
try{
window.localStorage;
}catch(err){
window.localStorage = {
getItem: function(k){
return this.k;
},
setItem: function(k,v){
this.k = v;
}
};
}
唯一の解決策は、「偽の」localStorageを別の変数に移動することのようですが、この変数へのアクセスに依存する多くのコードとjs libがあるため、これは面倒です。解決策はありますか?
編集: Cookie が必要であることをユーザーに知らせるアラートをポップアップ表示するだけでは最適ではありません。訪問者がサインアップせずにサイトを表示するだけの場合、Cookie は本当に必要ありません。しかし、backbone.js アプリケーションであり、大量のデータをやり取りするため、localStorage にかなりの量を格納します。