這裏是我的代碼:奇怪的行爲檢查Web存儲可用性
if(typeof(Storage)!==undefined) {
// Web storage support
if(localStorage.hashes != "") {
var hashes = jQuery.parseJSON(localStorage.hashes);
for (var i = 0; i < hashes.length; i++) {
// Do stuff here
}
}
else {
var hashes = [];
}
}
else {
// No web storage support
}
我真的不知道發生了什麼事情,但是當我嘗試從一個設備使用此代碼加載頁面的第一次,我的其他代碼不能按照它應該的方式工作。但是,如果我將它評論出來,那麼首次訪問該頁面時一切正常。然後,我可以取消註釋,重新加載頁面,並且所有內容都將繼續有效。這真的是我能描述發生的最好的事情。
'typeof'運算符返回一個字符串(例如''undefined''),它永遠不會等於'undefined'。另外,你不應該在if/else塊內聲明變量,因爲javascript沒有塊範圍。 – jbabey
感謝您的提示!我做了更改,但我仍然遇到同樣的問題。 –
其他小事情 - 你應該考慮使用原生的'JSON.parse()'而不是'$ .parseJSON','localStorage.getItem()'而不是括號/點符號,並且你不會將'hashes'推入'localStorage '在'else'語句中。 – jbabey