相关疑难解决方法(0)

为什么在进行可用性检查后,MacOS/iOS 设备中的 localStorage 有时为空?

我在使用本地存储的 Web 应用程序中遇到了一个问题,该问题不是很频繁,但仍会定期发生。

该问题仅发生在 iOS/macOS 设备中,与浏览器无关,并且记录的错误如下:

类型错误:'null' 不是一个对象(评估 'localStorage.getItem')

下面是代码的工作原理;有一个函数 ( isLocalStorageSupported) 检查是否支持本地存储,还有另一个函数 ( getLocalData) 在尝试从存储中获取数据之前使用它。

在通过返回 true 完成对本地存储的检查后抛出错误,但是当尝试从本地存储获取密钥时,下一行 (?) 莫名其妙地抛出,因为该阶段的存储变量似乎为空。

我不清楚这是怎么发生的,因此我的问题。

// The function that checks availability
const isLocalStorageSupported = (() => {
  let localStorageSupported = null;

  return () => {
    if (localStorageSupported !== null) {
      return localStorageSupported;
    }

    try {
      localStorage.setItem('check', 'check');
      localStorage.getItem('check');
      localStorage.removeItem('check');

      localStorageSupported = true;
    } catch (error) {
      localStorageSupported = false;
      console.error('localStorage not supported');
    }

    return localStorageSupported;
  };
})();

const getLocalData = (key) …
Run Code Online (Sandbox Code Playgroud)

javascript browser local-storage ios web

8
推荐指数
1
解决办法
407
查看次数

在IOS-6 Safari中无法访问localStorage

我无法访问Safari中的localStorage(使用IOS-6的IPad).

例如,以下代码在Windows上适用于所有浏览器和(iOS版本为iOS),但不适用于iOS-6:

localStorage.setItem("var","5");
alert(localStorage.getItem("var"));
Run Code Online (Sandbox Code Playgroud)

请帮忙.

javascript safari local-storage

6
推荐指数
1
解决办法
7119
查看次数

标签 统计

javascript ×2

local-storage ×2

browser ×1

ios ×1

safari ×1

web ×1