在移動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);