sessionStorage setItem返回true或false

时间:2014-01-31 13:57:26

标签: javascript html5 sessionstorage

我正在试图找出setItemsessionStorage方法返回的内容。就我所知,以下代码返回undefined

var set = sessionStorage.setItem('foo', 'bar');
console.log(set);

我需要知道项目是否成功设置或是否失败。如何在不知道回报的情况下实现这一目标?

3 个答案:

答案 0 :(得分:6)

查看sessionStorage specification

这一行:

setter creator void setItem(DOMString key, DOMString value);

告诉我们setItem不会返回任何内容。 (void是返回值,那里)


您可以检查项目是否设置如下:

if (sessionStorage.getItem('myValue') == null){
    // myValue was not set
}else{
    // myValue was set
}

答案 1 :(得分:1)

Here是Mozilla开发者网络sessionStorage的指南。似乎sessionStorage.setItem(name, value)没有返回任何内容。

但是,如果您手动想要检查,可以尝试这样的事情:

sessionStorage.setItem('make', 'Ford');

/* Returns null if it cannot find the item in sessionStorage. */
if(sessionStorage.getItem('make')) {
    /* Session storage set successfully. */
} else {
    /* Session storage did not set successfully. */
}

答案 2 :(得分:0)

使用try catch表达式,因为如果会话已满,该方法会抛出异常,如specification中所述:

try { sessionStorage.setItem('foo', 'bar'); }
catch(oops) {
     // maybe no more space, try to free
     localStorage.removeItem('foo');
     sessionStorage.setItem('foo', 'bar');
}