检查是否启用了localStorage或sessionStorage
使用localStorage
和sessionStorage
经常会遇到一些挑战,其中最重要的是它们并不总是可用。这可能是由于浏览器的安全设置、用户的隐私设置,甚至是浏览器的版本所致。
无论如何,在使用之前检查localStorage
或sessionStorage
是否可用总是一个好主意。
检查是否启用了localStorage
检查是否启用了localStorage
需要一些试错,字面上来说,我们将使用try...catch
块来测试localStorage
中的操作是否受支持。
使用Storage.setItem()
和Storage.removeItem()
,我们将尝试在localStorage
中存储和删除一个值。如果两个操作都成功完成,我们将返回true
,否则返回false
。
const isLocalStorageEnabled = () => {
try {
const key = `__storage__test`;
window.localStorage.setItem(key, null);
window.localStorage.removeItem(key);
return true;
} catch (e) {
return false;
}
};
isLocalStorageEnabled(); // 如果localStorage可访问,则返回true
检查是否启用了sessionStorage
检查是否启用了sessionStorage
与检查是否启用了localStorage
完全相同,只是我们将使用sessionStorage
代替localStorage
。
const isSessionStorageEnabled = () => {
try {
const key = `__storage__test`;
window.sessionStorage.setItem(key, null);
window.sessionStorage.removeItem(key);
return true;
} catch (e) {
return false;
}
};
isSessionStorageEnabled(); // 如果sessionStorage可访问,则返回true
[!TIP]
您可以在先前的文章中了解
localStorage
和sessionStorage
之间的区别。