我試圖找出從sessionStorage
返回的setItem
方法。至於我能得到,下面的代碼返回undefined
:sessionStorage setItem返回true或false
var set = sessionStorage.setItem('foo', 'bar');
console.log(set);
我需要知道,如果該項目已成功設置,或者如果它失敗了。如何在不知道退貨的情況下完成這件事?
我試圖找出從sessionStorage
返回的setItem
方法。至於我能得到,下面的代碼返回undefined
:sessionStorage setItem返回true或false
var set = sessionStorage.setItem('foo', 'bar');
console.log(set);
我需要知道,如果該項目已成功設置,或者如果它失敗了。如何在不知道退貨的情況下完成這件事?
看看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
}
我認爲這會做現在...假設如果出現問題,NULL返回。 – darksoulsong
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. */
}
使用嘗試捕捉表情:
try { sessionStorage.setItem('foo', 'bar'); }
catch(oops) {
// maybe no more space, try to free
localStorage.removeItem('foo');
sessionStorage.setItem('foo', 'bar');
}
的[無法在localStorage的設定布爾值?]可能的複製(http://stackoverflow.com/questions/3263161/cannot-set-boolean-values-in-localstorage) –