網上大部分的文章寫隱身模式下 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>
完。