2012-08-31 57 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); 
} 

我觉得如果将来价值持续存在,您可能会想保持现有价值。