事件回顾 做了一个移动端的页面,测试的时候出现了一个诡异的 bug.别的浏览器都好好的,就 ios 的 Safari 浏览器页面停止了渲染,似乎是有一段 js 文件没有载入.但是奇怪的是,同一型号的 iphone 的 Safari 浏览器,有些可以,有些不行,一度让我以为不可能是代码的问题(如果是代码的问题,应该都挂才科学啊),而是个别机器的原因.但是最后的最后,定位出来的原因是 Safari 开启了 无痕浏览模式! 就是这样: DEBUG 当然,除了 Safari 开启了无痕浏览外,另一个重要…
myStorage在ios safari无痕浏览模式下的解决方案 今天看到了这个帖子LocalStorage 在 Private Browsing 下的一个限制, 吓尿了,如果用户开启了无痕浏览,app几乎就废了,虽然做了plus.storage的兼容,不过会很慢很慢滴. 赶紧测试一下.... 还好,暂时没问题. 我这小心肝终于平静了. 万一,万一,万一有影响呢,还是做下容错吧,代码放到了github上,这里就不贴出来了. myStorageForPrivateBrowing…
昨天下午,测试提了一个bug,问题是:在苹果手机Safari无痕浏览模式下系统登录成功但是页面不跳转. 思前想后找了半天没思路,后来经过同事的点拨,说可能是禁用了cookie之类的,反正我也没思路就顺着这个发散,结果还真是,localStorage无法在苹果Safari的无痕浏览模式下使用,因为不支持,具体解决办法就是加个判断,看看浏览器是否支持localStorage. function isLocalStorageSupported() {        var testKey = 'tes…
前言 前阶段,测试提了个bug,在苹果手机中无痕模式下,搜索按钮不好使,无法跳页,同时搜索历史也没有展示(用户搜索历史时使用localStorage存储). 正文 iOS上Sarfari在无痕模式下,浏览器假装支持localStorage,并在全局window上暴漏了该方法,所以校验是有localStorage对象的,但是调用setItem进行保存的时候,就报Error: QuotaExceededError ... : The quota has been exceeded.   因此,进行了…
safari 无痕浏览情况测试(部分手机)   1.测试机型 iPhone7 Plus  版本 11.3 iPhone6 Plus  版本 11.3.1 iPhone6    版本 10.2.1 iPhoneSE        版本 9 oppe r9 2.测试浏览器 Sarfari    UC    自带浏览器   3.结果: iOS9,iOS10    Sarfari setItem 报错 getItem null iOS 11    Sarfari setItem  可set getIte…
正常使用Safari浏览器,都会保存你的浏览记录.搜索记录,包括你的浏览习惯,经常去哪些网站等等.这样的好处是可以帮助你更快速的进入自己需要的网站,节约很多时间. 但有些情况下,你还是会偏向于选择私密浏览(private browsing).这样可以在适当情况下不必要留下历史记录,减少一些麻烦,比如你借用同事电脑查询资料时. Safari和 Firefox等浏览器都有选项开启这个功能.在Safari下开启私密浏览,并不是特别麻烦.打开Safari,点击菜单栏的Safari 选中Private B…
一.开启全站目录浏览功能 编辑nginx.conf, 在http下面添加以下内容: autoindex on; # 开启目录文件列表 autoindex_exact_size on; # 显示出文件的确切大小,单位是bytes autoindex_localtime on; # 显示的文件时间为文件的服务器时间 charset utf-,gbk,gb2312; # 避免中文乱码 add_header Content-Disposition attachment; # 文件下载(可以不开启该功能)…
移动端开发时,如果用户浏览器启用了无痕浏览,那么本地存储信息就会失效,会导致页面信息报错 解决办法: 先判断是否能适用 localStorage.setItem 如果不行在适用  cookie cookie还是不行的话,只能考虑传回后台,在进行拉去数据 var tracelesStorage=function(name, val){ if(arguments.length> 1){ try{ localStorage.setItem(name, val); }catch(e){ setCooki…
我们先看下面的代码: setTimeout(function(){ alert(count); },2000); var count = []; document.body.appendChild(createEditorBody()); function oninitialized(){ count.push(2); } count.push(1); function createEditorBody(){ var editorBody = createElement('div',{ 'cla…
前言 Safari开启无痕模式后,localStorage和sessionStorage为空,对其进行set操作也会报错,也就是说这种情况下,storage是被禁止使用了.接下来说一下解决方法. 解决方案 我们项目框架上的解决方法是对storage进行一层封装,遇到这种开启无痕模式的情况,会定义一个window的全局变量,把之前准备存放到storage的内容改为存到这个全局变量中. 注意,无痕模式下localStorage和sessionStorage对象本身依然是存在的,只是调用setItem…