我正在试图找出setItem
中sessionStorage
方法返回的内容。就我所知,以下代码返回undefined
:
var set = sessionStorage.setItem('foo', 'bar');
console.log(set);
我需要知道项目是否成功设置或是否失败。如何在不知道回报的情况下实现这一目标?
答案 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');
}