问题背景:项目的页面(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 代码
本文探讨了如何在Chrome无痕模式和iframe嵌套环境中判断用户行为,确保A页面 localStorage 的正确使用。通过检测浏览器类型和窗口层级,作者提供了代码示例来解决跨域和隐私设置带来的挑战。

1637

被折叠的 条评论
为什么被折叠?



