关于localStorage,在简单不过的接口,getItem,setItem,removeItem,clear,key.这些大家都很了解,可是也有一些细节,如果不注意的话也是可能导致一些问题的。
支持范围
localStorage的支持范围比想象的要广很多,市面上手机端和PC端的浏览器,除开IE,几乎都支持(指从很低版本就开始支持),而一向拖后腿的IE,在IE8中也是支持localStorage的。所以,放心使用吧!以下是各浏览器下的支持情况:
IE | FIREFOX | SAFARI | CHROME | OPERA | IPHONE | ANDROID |
---|---|---|---|---|---|---|
8.0+ | 3.5+ | 4.0+ | 4.0+ | 10.5+ | 2.0+ | 2.0+ |
来源限制
localStorage对来源的认定是根据以下规则:协议+域名+端口
协议
http:// 里面的数据和 https:// 里面的是分离的 所以http://www.demo-domain.com/下面localStorage里面的数据,在https://www.demo-domain.com/里面是没法访问到的
域名
域名是必须完全一致的,下属的二级,三级域名都是没法访问根域名下面的数据的。
所以http://t.www.demo-domain.com/是没法访问到http://www.demo-domain.com/页面里面localStorage的数据
端口
这个比较少见,大部分对外公开的网站,都是默认的80端口。同域名和协议,但是端口不同的页面,也是没法共享localStorage的数据的
比如:http://www.demo-domain.com:8080/ 页面是没法访问 http://www.demo-domain.com/ 页面中的localStorage数据
浏览器的“模式”
现在很多浏览器都提供了“匿名访问”,“安全模式”,“隐身窗口”等等功能。在这种情况下,浏览器都是会重新建立一个新的localStorage,所以这些模式下的页面是没法访问在正常模式下的页面中的数据。
借鉴的文章地址:
http://htmlui.com/blog/2011-08-23-5-obscure-facts-about-html5-localstorage.html