网上大部分的文章写隐身模式下 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>
完。