Safari无痕浏览模式埋坑之storage失效 - VicSh/my-web-log GitHub Wiki
iphone无痕浏览模式下,h5的storage失效
今天做一个h5的项目时发现,公司总是有一台测试机无法正常显示页面,经过各个机器对比,原来这部手机开启了无痕浏览模式,导致sessionStorage失效,经查阅资料,封装了一个解决方法:
说明
- 判断浏览器是否支持sessionStorage
- 捕捉sessionStorage在浏览器中的异常,若存在异常,则为无痕模式
function isSessionStorage(){
// 判断浏览器是否支持sessionStorage
if (!window.sessionStorage) {
alert('您的浏览器不支持缓存')
return;
}
// 捕捉iphone下是否为无痕浏览模式
var isPrivateMode = false
try {
sessionStorage.setItem('_isPrivateMode', '1')
sessionStorage.removeItem('_isPrivateMode')
isPrivateMode = false
} catch (e) {
isPrivateMode = true
}
// 判断浏览器是否支持sessionStorage
if (isPrivateMode) {
alert('您的浏览器处于无痕浏览模式')
return;
}
}
总结
之前没有用过try{}catch(){}
,这里用到了发现还是很有用处的