iOS Safari私密浏览localStorage和sessionStorage支持?

时间:2016-02-24 16:31:53

标签: javascript ios html5 safari

我在StackOverflow上发现了一些问题,解决了iOS Safari私密浏览和sessionStorage以及localStorage的特定功能。但是我无法找到一个明确的资源来表示iOS Safari在私密浏览时对sessionStoragelocalStorage的支持。

对此有何支持,或Apple是否有任何特定资源表示此功能?普遍的共识是,localStorage在没有填充的情况下根本不受支持,sessionStorage也是如此吗?

非常感谢你!

2 个答案:

答案 0 :(得分:8)

是的,同样适用于sessionStoragelocalStorage

保罗爱尔兰有一个很好的要点,解释了这个问题的历史:

https://gist.github.com/paulirish/5558557

最佳解决方案,如果您只需要其中一个:

function isLocalStorageEnabled() {
  try {
      var mod = '__storage_test__';
      localStorage.setItem(mod, mod);
      localStorage.removeItem(mod);
      return true;
  } catch(e) {
      return false;
  }
}

或者,为了使它适用于两者,MDN推荐的解决方案更通用: https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API

function storageAvailable(type) {
    try {
        var storage = window[type];
        var x = '__storage_test__';
        storage.setItem(x, x);
        storage.removeItem(x);
        return true;
    }
    catch(e) {
        return false;
    }
}

答案 1 :(得分:4)

我认为iOS没有任何特定资源,但这里是Apple的官方文档:

https://developer.apple.com/library/safari/documentation/iPhone/Conceptual/SafariJSDatabaseGuide/Name-ValueStorage/Name-ValueStorage.html

这个StackOverflow问题也非常有用:

QuotaExceededError: Dom exception 22: An attempt was made to add something to storage that exceeded the quota

一般情况下,在解决sessionStoragelocalStorage时,尝试在手机上使用Safari进行本地开发,并打开Web Inspector。祝你好运:)