如何应对用户使用无痕浏览模式

在开发过程中,由于一些页面会使用localStorage,sessionStorage ,在无痕浏览模式,本地存储不能用,会出现很多问题,看到过一种解决方案

function isStorageSupported() {

let testKey = 'test',

storage = window.localStorage

try {

storage.setItem(testKey, 'testValue')

storage.removeItem(testKey)

/*

因为重写覆盖localStorage的setItem的方法后,再次执行这个函数一定会返回true,

那么如何在任何知道是否在隐身模式下呢?一个简单的方法是在window下添加一个属性标记。

这个方法的坏处就是需要多维护一个变量。

还有一个办法是为isStorageSupported方法添加memoize控制。关于Memoize可以看我上一篇文章

*/

window.isStorageSupportedFlag = true

return true

} catch (error) {

window.isStorageSupportedFlag = false

layer.open({content: '隐私/无痕模式效果会不太好哦!请切换到正常模式'})

return false

}

}

//解决方案二

// Safari, in Private Browsing Mode, looks like it supports localStorage but all calls to setItem

// throw QuotaExceededError. We're going to detect this and just silently drop any calls to setItem

// to avoid the entire page breaking, without having to do a check at each usage of Storage.

if (typeof localStorage === 'object') {

try {

localStorage.setItem('localStorage', 1);

localStorage.removeItem('localStorage');

} catch (e) {

Storage.prototype._setItem = Storage.prototype.setItem;

Storage.prototype.setItem = function() {};

alert('Your web browser does not support storing settings locally. In Safari, the most common cause of this is using "Private Browsing Mode". Some settings may not save or some features may not work properly for you.');

}

}

如果实在Angular 里面可以使用$cacheFactory 在其他需要的地方使用依赖注入的方法,保存一个全局变量,对于一些其他的常用框架又是怎么处理的呢?

app.factory('Cache', ['$cacheFactory', function($cacheFactory) {

return $cacheFactory('cache');

}]);

相关阅读:

nginx 针对pc和mobile配置,pc可以正常访问,mobile出现404

cxfreeze打包demo中pyqt4演示文件,生成EXE有150M,为什么这么大?

如何使用基于koa2的koa-jwt?

mysql Updating of NEW row is not allowed in after trigger 怎么解决??

vue2.0 中如何在父组件中调用子组件的自定义事件

react router中使用hashhistory,地址栏上会显示一个hash随机数,这个如何去掉去掉会用影响吗?

为什呢用webpack打包的代码,使用node的fs模块就报错?

postman和rest架构风格之间的关系

mysql和sqlite源码哪个更适合阅读呢?

MPAndroidChart 设置数据不同颜色之后,横向滑动颜色错位

VUE2.0使用 vue-color这个插件,注册了组件,可使用时还是说没定义

Xilium.CefGlue的Winform浏览器控件在访问django admin后台管理时,不能显示中文界面,只能显示英文。

react-native 中如何实现这种功能?看图

javascript对象,函数谜题

Android获取网页中ajax内容的问题

H5中播放的视频如何有效的进行知识产权保护-防下载防盗链

docker start -a dockername 老是卡住,什么情况?

关于变量的问题

dataTable初始化出错!求助!

微信小程序中如何获取view的高度或在视图中的位置?

php网页无痕预览,javascript,html5_如何应对用户使用无痕浏览模式,javascript,html5 - phpStudy...相关推荐

  1. 在网页中预览excel表格文件

    项目需求在前端页面中实现预览excel表格的功能,上网了解之后大致总结为一下几种方法. 1.office文档转换为pdf,再转swf,然后通过网页加载flash进行预览 2.通过 xlsx.js,js ...

  2. html浏览pdf文件,HTML网页在线预览PDF文件

    image.png image.png 今日工作需要,需要在线预览PDF文件,so,做了个研究,下面将网页在线预览pdf的方法做个梳理,大家共同学习成长吧 方法分为三种 1. 方法1-embed标签 ...

  3. js读excel到网页表格预览

    xlsx.js读取xls,xlsx文件到网页表格预览(bootstrap table) 以下描述仅展示主要功能,具体代码实现在gtihub上,链接在文章最后. 1.js准备 读取文件的xlsx.js+ ...

  4. h5页面如何预览excel文件_在网页中预览excel表格文件

    项目需求在前端页面中实现预览excel表格的功能,上网了解之后大致总结为一下几种方法. 1.office文档转换为pdf,再转swf,然后通过网页加载flash进行预览 2.通过 xlsx.js,js ...

  5. JavaScript 网页打印预览,图片跨页分割

    开始时是这样的, 打印的控件是用iframe写的,图片用js一张张插入到div中,遇到的问题是长图片跨页分割,短图片挤在一页 解决方法 // 插入图片方法 function addImg() {var ...

  6. 文档文件等网页端预览功能

    要实现word.ppt.excel.pdf等文档在web应用端预览功能,目前一般做法为:   在页面的显示效果: 主要用的工具: Openoffice4(windows.linux):SWFTools ...

  7. html、aps网页设计,Dreamweaver8通过IIS建立站点对网页进行预览,设置详细方法

    在网页设计的时候,我们对网页的修改想看到实时的反馈,要么就是把修改的文件直接上传,然后到网页去看,要么就只能建立出一个虚拟站点实时查看,因为Dreamweaver8只能看到设计界面,并不能看到动态的界 ...

  8. embed预览pdf_网页上预览pdf文件的几种方案

    网页上查看pdf的方案: 1.使用adobe reader的插件 2.使用在线office控件 3.使用火狐开源项目pdf.js(浏览器需支持html5) 4.将pdf转换为swf文件 5.使用pdf ...

  9. 微信网页图片预览问题

    最近在做微信公众号开发,开发过程中遇到了一个图片全屏预览,用微信JSSDK的previewImage({current: curImg, urls: imgUrls})接口写,后面发现点击图片的时候出 ...

最新文章

  1. 如何在JSP页面中获取当前系统时间转
  2. 【USACO training】Chapter 1 入门
  3. offset client scroll
  4. 利用python 实现微信公众号群发图片与文本消息功能
  5. 计算机本地网络如何共享,本地网络共享怎么实现
  6. 有用户访问我的计算机,事件查看器有个奇怪用户账号登录HOME-W81$,我的电脑没有这个用户账号,本机是win8.1ʌ - Microsoft Community...
  7. html生成小窗口,用JS制作9种弹出小窗口(HTML)
  8. linux用户limit修改,linux – 使用cgroups作为用户设置用户创建的systemd范围的MemoryLimit...
  9. oracle sql分析 cost,Oracle SQL的优化技巧详解
  10. [转载] python全局变量的使用
  11. nginx发布静态目录备忘
  12. python报表自动化系列 - 按照文件名筛选文件
  13. java格式化到毫秒_java时间格式化到毫秒
  14. 《深入剖析Android系统》第9章RIL补充配图
  15. 传奇病毒劫持流量手法分析
  16. 关于 Mac OS系统中编程时出现的segment error 和bus error原因描述
  17. 机器学习 | 实战(二)Fashion-MNIST
  18. Unity 安装个人免费版
  19. 官方win10安装教程,win10系统一键安装方法
  20. 解决: Tomcat 启动项目没问题,访问网页页面出现空白无显示

热门文章

  1. zram lz4 和 lzo 算法性能评估比较
  2. js 取得 Unix时间戳(Unix timestamp)
  3. Python爬虫完整代码拿走不谢
  4. 网红电商第一股”赴美上市,它还需要复制多少个张大奕?
  5. 运行时栈帧结构是怎样的?
  6. 【Matplotlib】(一)绘制图像函数
  7. Python实现将位图描摹为彩色矢量 svg 图片的源代码,Python实现位图转彩色矢量代码
  8. JAVA 实现字符串(String)的模糊查找
  9. 【转帖】Moodle平台的5个新玩法
  10. 关于SQL的一点学习