2012-08-31 55 views
0

在Firefox中當前網站上使用會話存儲時,會看到奇怪的行爲。在Firefox中恢復瀏覽器會話時的HTML5會話存儲

當用戶導航到一個會話存儲值設置像這樣的網站:

sessionStorage.setItem(cacheKey, cacheValue); 

然後我進行檢查,以查看該會話密鑰是否對網站的後續網頁上有一定的價值。如果是這樣,那麼我運行一個函數,如果不是,那麼不。

但是,如果用戶在Firefox中啓用了「恢復會話」功能,瀏覽器似乎會存儲會話密鑰而不是值(空字符串)。我對隨後失敗的值執行檢查,因爲該值現在爲空或空字符串。

有沒有更強大的方法來處理這種行爲?

+0

不確定在這種情況下sessionStorage的所需功能是什麼,但如果值爲'null'或'undefined',我可能會將其視爲新會話 – Sphvn

回答

1

對於像這樣的意外行爲,我會將「恢復」會話視爲新會話,如果它沒有保留該值。

一個簡單的空值檢查就足夠了。

if (window.sessionStorage.getItem(cacheKey) === null) { 
    sessionStorage.setItem(cacheKey, cacheValue); 
} 

我覺得如果將來價值持續存在,您可能會想保持現有價值。