4

我不确定 IE8 是否完全支持 localStorage。但是我用下面的方法来检测

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

现在 IE 在窗口中为“localStorage”返回 true

但为 window['localStorage'] 返回 undefined

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

4

3 回答 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;
}

警报(有存储())

于 2013-03-09T19:17:30.327 回答
5

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

store.js 在可用时使用 localStorage,并回退到 IE6 和 IE7 中的 userData 行为。没有闪光灯来减慢您的页面加载速度。没有 cookie 来增加您的网络请求。前任 :

store.set('user', { name: 'marcus', likes: 'javascript' })
于 2014-02-16T13:02:50.803 回答
2

您可以使用Modernizr

if (Modernizr.localstorage) {
  // localStorage is available
}
于 2013-09-17T13:34:00.487 回答