localStorage和sessionStorage在ios1

作者: 牧羊童鞋 | 来源:发表于2018-03-05 17:25 被阅读1000次

    也许你知道在safari的隐身模式下操作localStorage和sessionStorage会报错,但是你不知道在某些版本的ios(ios10最多)下开隐身模式,尝试使用typeof 判定localStorage和sessionStorage都会报错。

    我一开始也不知道,我是通过js error监控才知道的,我们的监控系统发现两个第三方库pingpp-jssa-sdk-javascript 都存在这样的报错,刚好是一个是用typeof 判定localStorage,另外一个是typeof 判定sessionStorage,这两者都会报SecurityError The operation is insecure.或者是DOM 18 Exception的错误。

    这是pingpp-js当初报错的代码,经我们反馈给他们后,目前已修复

    initPuid: function() {
        if (typeof window === 'undefined' || typeof localStorage === 'undefined'  // 这行会报错
            || localStorage === null) {
          return;
        }
        var puid = localStorage.getItem('pingpp_uid');
        if (puid === null) {}
    }
    
    pingpp-js修改后效果报错明显降低

    这是sa-sdk-javascript 报错的代码

    "object"== typeof window.sessionStorage  // 报错
    

    这就说明了前端错误监控系统的重要性,没有错误监控就算有QA团队也不一定能发现这种错误,微笑

    相关文章

      网友评论

        本文标题:localStorage和sessionStorage在ios1

        本文链接:https://www.haomeiwen.com/subject/ikhxpxtx.html