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

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

在开发过程中,由于一些页面会使用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的高度或在视图中的位置?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值