localStorage、sessionStorage在無痕模式下被禁用


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

 

原文出處:http://www.foreverpx.cn


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM