在移動web開發中,經常會使用到localStorage去緩存一些數據,一般情況下,我們只需要按照下面的代碼去使用就不會有
問題。
if(window.localStorage){
localStorage.setItem('key','value');
}
但只是這樣判斷是不夠的,現在的一些瀏覽器有一種功能叫無痕瀏覽,顧名思義,就是用戶在瀏覽網頁的過程中什麼都不緩存,
什麼也不記錄,不留下痕跡。
自然地,localStorage也被禁用了。但此時window.localStorage並不是null,它還是原來的localStorage對象,只不過
這個對象的方法被禁用了。如果單純只按上面的方法判斷,js會拋出異常。
所以得用下面的代碼去判斷這個localStorage是否可用
var storageTest = function(storage){
if(!!storage){
try {
storage.setItem("key", "value");
storage.removeItem("key");
return true;
} catch(e){
return false;
}
}else{
return false;
}
}
storageTest(window.localStorage);
storageTest(window.sessionStorage);