隐身模式下直接以 localStorage 能否写入来判断浏览器是否处于隐身模式其实是错的,在隐身模式下localStorage也是能使用的,但这时候它会有sessionStorage一样,当用户关闭标签栏时就会被清除。在隐身模式下真正不能用的是 FileSystem 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>