js检查浏览器是否处于隐身模式
网上大部分的文章写隐身模式下 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>
完。
js检查浏览器是否处于隐身模式的更多相关文章
- 如何用js检查浏览器是否安装flash插件
<script type="text/javascript" language="JavaScript"> //Powered By smvv @h ...
- JS检查浏览器类型和版本号
先取得Navigator对象的userAgent属性的小写信息,之后依据正則表達式推断赋值. var Sys = {}; var ua = navigator.userAgent.toLowerCas ...
- js关闭浏览器窗口及检查浏览器关闭事件
js关闭浏览器窗口,不弹出提示框.支持ie6+,火狐,谷歌等浏览器,下面以一个示例为大家详细介绍下具体的实现方法,感兴趣的朋友可以参考下 js关闭浏览器窗口 js关闭浏览器窗口,不弹出提示框.支持 ...
- js获取浏览器类型和版本信息
bro () { let broName = 'Runing' let strStart = 0 let strStop = 0 let temp = '' let userAgent = windo ...
- js获取浏览器信息及版本(兼容IE)
获取浏览器信息方法有很多种,但是要是兼容ie旧版本就有点麻烦了,因为很多方法在旧版本ie是不支持的,所以ie我做了单独处理,但是目前还有小问题,就是想显示QQ浏览器,搜狗浏览器..这样的,这样还实现不 ...
- js关闭浏览器窗口事件
js关闭浏览器窗口 js关闭浏览器窗口,不弹出提示框.支持ie6+,火狐,谷歌等浏览器. <html> <head /> <body> <script typ ...
- vt-is-UTF8 - check whether current VT is in UTF8- or byte-mode. 检查当前VT是否处于VTF8模式或是字节模式.
总览 vt-is-UTF8 [-h|--help] [-V|--version] [-q|--quiet] 描述 vt-is-UTF8 checks whether the current VT is ...
- Chrome的隐身模式
先来说说隐身模式的启用方法吧 1.键盘快捷:Ctrl + Shift + N. 2.在Windows7下的任务栏处,右击“Chrome”图标,会出一个下拉菜单,点击“新建隐身窗口”. 3.你还可以在一 ...
- JS中的“use strict” 严格模式
1.介绍严格模式 2.严格模式影响范围 变量: var.delete.变量关键字 对象: 只读属性. 对象字面量属性重复申明 函数:参数重名.arguments对象.申明 其他:this.eval. ...
随机推荐
- VC++ 知识点
1.寻找文件时,CFileFind类的使用. 2.寻找目录时使用BROWSEINFO,其中包含了用户选中目录的重要信息. 3.LPITEMIDLIST类 4.目录选择对话框的使用SHBrowseFor ...
- u-boot mkconfig文件分析
#!/bin/sh -e #遇到非0返回 就退出脚本 # Script to create header files and links to configure # U-Boot for a spe ...
- C#中一道关于员工信息系统的题(主要考察LinQ和正则表达式验证)
今天上午进行了公司的C# C level考核,最后一道编程题是关于员工信息系统的,题目的要求大概是这样的:1.要可以保存员工信息(XXXXX),并且要用正则表达式对输入信息进行验证:2.要可以对员工信 ...
- php结合msf反弹内网shell
感谢: perl6大佬分享的姿势. MSF: msf > use payload/php/bind_phpmsf exploit(handler) > set PAYLOAD payloa ...
- ios的一些经验记录2
1.UITextField 的事件用 valuechanged outlet连接 2.swift 中 struct 和class的self 3.Int 和UInt 4.Gesture 的target ...
- Unity3D中的序列化测试
Unity3D中序列化字段常使用[SerializeField],序列化类常采用[System.Serializable],非序列化采用[System.NonSerialized]. 序列化类使用时发 ...
- 为WPF程序添加字体
很多时候我们开发的程序可能会在多个版本的Windows上运行,比如XP.Win7.Win8. 为了程序美观,现在很多公司会使用WPF作为程序的界面设计. 跨版本的操作的操作系统往往有一些字体上的问题, ...
- VMware网络连接失败
假如你碰到了VMware 网络被断开, 明明已经分配了适配器, 客户端却显示网络断开没有连接. 可用恢复默认的方法重置所有网卡及服务. 进主工具首页.点击: 虚拟网络编辑器,然后点击下面的恢复默认. ...
- LPD打印机服务是什么意思
line Printer Daemon(LPD)行式打印机后台程序,用于假脱机打印工作的UNIX后台程序(后台服务).行式打印机后台程序是一个安装在UNIX打印服务器上的后台程序.它的功能是等待接受客 ...
- hadoop上线和下线节点
在运行中的ambari hadoop集中中动态添加或删除节点 1. 下线节点1) namenode节点上dfs.exclude文件,看配置文件怎么配置的,里每行添加一个服务器名,如我要下线server ...