W3Schools建议(http://www.w3schools.com/html/html5_webstorage.asp)
if(typeof(Storage) !== "undefined") {
// Code for localStorage/sessionStorage.
} else {
// Sorry! No Web Storage support..
}
检查浏览器中是否有本地存储空间。
我使用以下
var l=localStorage!==null?localStorage:0;
if(l) { /*code for locale storage*/}
并且想知道这在所有浏览器上是否足够可靠?
谢谢我真的很感谢你的帮助!
答案 0 :(得分:10)
w3fools - 你似乎认为w3schools与w3c有关 - 他们不是。
使用window.localStorage
。如果没有window
,您将在不支持ReferenceError
的浏览器中获得localStorage
。
请勿使用localStorage !== null
。在非支持的浏览器中,localStorage
将是undefined
,而不是null
。更好的运算符是!= null
,但我根本不会使用比较运算符。您可以直接将window.localStorage
传递给三元运算符(l = window.localStorage ? localStorage : 0
),或者更好的是,使用||
:
var l = window.localStorage || 0;
修改:真的,这就是您所需要的:
if (window.localStorage) {
// do stuff with localStorage
// no need to use window anymore
}
答案 1 :(得分:1)
您可以使用Modernizr来检查此内容。
就像在这里的答案: How to detect if browser supports HTML5 Local Storage
答案 2 :(得分:0)
有时浏览器会阻止对localStorage的访问,例如当您以隐身模式或私人模式等浏览时...所以检查存储是否存在不是最好的主意,因为有时它存在,但是无法访问。
function storageON() {
try {
localStorage.setItem("__test", "data");
} catch (e) {
return false;
}
return true;
}
if (storageON()) { /* DO SOMETHING */ }