2016-11-29 51 views
1

做localStorage.setItem( '用戶',some string here)時,我讓我的iPhone的safary,這個錯誤:錯誤:配額已超出。在Safari IOS 10

Error: The quota has been exceeded. 
[email protected][native code] 

這是不是私人模式!請幫助瞭解其他情況會使localStorage無法正常工作。

+0

[: 「後配額\ _EXCEEDED \ _ERR:DOM異常22:試圖添加的東西存儲超出配額」 HTML5 localStorage的Safari瀏覽器錯誤]的可能的複製(HTTP://計算器。 com/questions/14555347/html5-localstorage -error-safari-quota-exceeded-err-dom-exception -22-an) –

回答

1

其實它是私人模式。看起來它在新的iphones上默認啓用。

+0

現在就等待。什麼是私人模式?我只是遇到了這個問題,Chrome的工作正常,但Safari不是,我只是想出瞭如何從我的iPhone做Web Inspector。 (https://developer.apple.com/library/content/documentation/AppleApplications/Conceptual/Safari_Developer_Guide/GettingStarted/GettingStarted.html#//apple_ref/doc/uid/TP40007874-CH2-SW2)但是,也許這裏有一些額外的信息會幫助人們瞭解爲什麼我們有私人模式的障礙克服,以及如何避免它?我不希望我的用戶必須修改vanilla Safari Mobile設置。 – iJames

+0

並感謝Apple提供了這樣一個有用的錯誤消息。 :-(Angular和衛星都算出來了「o = k(b)||(h.warn(」這個瀏覽器不支持網頁存儲!「),{」但是配額超過了嗎? – iJames

0

我創建了這個類來幫助解決隱私瀏覽問題。但是,當您刷新瀏覽器時,存儲將會被吹走。

const data = {}; 
let hasLocalStorage = false; 

if (localStorage) { 
    try { 
    const x = 'storageTest'; 
    localStorage.setItem(x, x); 
    localStorage.removeItem(x); 
    hasLocalStorage = true; 
    } catch (e) { 
    hasLocalStorage = false; 
    } 
} 

class StorageUtilities { 
    setItem(key, value) { 
    if (hasLocalStorage) { 
     localStorage.setItem(key, value); 
    } else { 
     data[key] = value; 
    } 
    } 

    getItem(key) { 
    if (hasLocalStorage) { 
     return localStorage.getItem(key); 
    } 
    return data[key]; 
    } 

    removeItem(key) { 
    if (hasLocalStorage) { 
     localStorage.removeItem(key); 
    } else { 
     data[key] = null; 
    } 
    } 
} 

const storageUtilities = new StorageUtilities(); 

export default storageUtilities; 
相關問題