网上大部分的文章写隐身模式下 localStorage 对象不可用,直接以 localStorage 能否写入来判断浏览器是否处于隐身模式其实是错的,在隐身模式下localStorage也是能使用的,但这时候它会有sessionStorage一样,当用户关闭标签栏时就会被清除
http://htmlui.com/blog/2011-08-23-5-obscure-facts-about-html5-localstorage.html
正确的判断方法:
在隐身模式下真正不能用的是 FileSystem api,所以我们通过这个api来判断就可以了,具体代码如下
<script type="text/javascript"> var fs = window.RequestFileSystem || window.webkitRequestFileSystem; if (!fs) { console.log("check failed?"); } else { fs(window.TEMPORARY,100,function(){ alert('非隐身模式'); },function(){ alert('隐身模式'); }); } </script>
完。