IE8和本地存储支持

4

我不确定IE8是否完全支持localStorage。但是我使用以下方法进行检测:

function supports_html5_storage() 
{
    try { 
    return 'localStorage' in window && window['localStorage'] !== null; 
    } 
    catch (e) {
    return false; 
    } 
}

现在IE在window中返回“localStorage”的值为true

但是在window['localStorage']中返回undefined

所以我应该更新这个方法还是IE8确实支持本地存储?


6
IE8支持localStorage。Can I Use是验证这一点的快速方式:http://caniuse.com/#feat=namevalue-storage - Rob W
3个回答

6

你可以尝试设置和读取localStorage。

如果cookie被禁用或您使用file:协议工作,则某些浏览器会返回安全错误。

function hasStorage(){
    try{
        localStorage.setItem('test', '7');
        if(localStorage.getItem('test')=== '7'){
            localStorage.removeItem('test');
            return true;
        }
    }
    catch(er){}
    return false;
}

alert(hasStorage())


5

这里有一个着名的localStorage插件https://github.com/marcuswestin/store.js/,你可以非常容易地添加、编辑和删除数据。最重要的是,在IE6+中你可以使用本地存储。

store.js会在浏览器支持时使用localStorage,并在IE6和IE7中回退到userData行为。不需要Flash来减缓页面加载速度,也不需要cookie来增加网络请求。例如:

store.set('user', { name: 'marcus', likes: 'javascript' })

2
您可以使用Modernizr
if (Modernizr.localstorage) {
  // localStorage is available
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接