如何查看localstorage是否可用

how to check whether localstorage is available?

本文关键字:是否 localstorage 何查看      更新时间:2023-09-26

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

,并想知道这是否足够和可靠的所有浏览器?

我真的很感谢你的帮助!
  1. w3fools mdash;你似乎认为w3schools与w3c –它们不是。

  2. 使用window.localStorage。如果没有window,您将在不支持localStorage的浏览器中获得ReferenceError

  3. 不要使用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
}

您可以使用Modernizr检查这个

就像这里的答案一样:如何检测浏览器是否支持HTML5本地存储

有时浏览器会阻止对localStorage的访问,例如当您以隐身模式或私有模式浏览时…所以检查存储是否存在并不是最好的主意,因为有时它存在,但不可访问。

你可以使用这个函数:

function storageON() {
    try {
        localStorage.setItem("__test", "data");
    } catch (e) {
        return false;
    } 
    return true;
}
if (storageON()) { /* DO SOMETHING */ }