问题背景:项目的页面(A)被其他企业的页面(B)嵌套使用,当用户使用chrome无痕模式访问 B 页面时,A 页面中用到了 locakStorage, 但是在无痕模式和iframe嵌套双buff 下,cookie 和localStorage被禁用了。
解决的思路: 判断1.B页面被访问时,是否处于嵌套下。2.浏览器是否禁用localStorage。(来等价浏览器开启无痕模式)
1 判断当前页面是被iframe嵌套访问
window.self === window.top // 当前窗体 === 最上层窗体(false表示被嵌套,到B页面中去验证)
2 判断当前浏览器
如果是其他浏览器也可以同样判断。
/Chrome/i.test(window.navigator.userAgent) // 返回值为 true of false
/firefox/i.test(window.navigator.userAgent)
/msie/i.test(window.navigator.userAgent) // IE浏览器
3 代码
![](https://emos-1306129032.cos.ap-chongqing.myqcloud.com/workRecords/%E5%88%A4%E6%96%AD%E6%B5%8F%E8%A7%88%E5%99%A8.png)