2014-01-31 215 views
0

我試圖找出從sessionStorage返回的setItem方法。至於我能得到,下面的代碼返回undefinedsessionStorage setItem返回true或false

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

我需要知道,如果該項目已成功設置,或者如果它失敗了。如何在不知道退貨的情況下完成這件事?

+0

的[無法在localStorage的設定布爾值?]可能的複製(http://stackoverflow.com/questions/3263161/cannot-set-boolean-values-in-localstorage) –

回答

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 
} 
+0

我認爲這會做現在...假設如果出現問題,NULL返回。 – darksoulsong

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. */ 
} 
0

使用嘗試捕捉表情:

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