1

我有以下代码localStorage

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

function setFormFieldValues()
{
    if (supports_html5_storage()) {
        var retrievedUserDataObj = JSON.parse(localStorage.getItem('UserDataObj'));
        if (retrievedUserDataObj) {
            ...
        }       
    }
}

现在这在 Firefox 和 Chrome 中运行良好,但在 IE8 中,我收到以下错误:

无法获取属性“getItem”的值:对象为空或未定义

4

1 回答 1

2

试试这个。如果您已经在使用try/catch.

演示: jsFiddle

脚本:

function supports_html5_storage() {
    try {
        window.localStorage.setItem( 'checkLocalStorage', true );
        window.localStorage.removeItem( 'checkLocalStorage' );
        return true;
    } catch ( error ) {
        return false;
    };
};

document.getElementById( 'result' ).textContent = 
    'localstorage: ' + supports_html5_storage();

HTML:

<div id="result"></div>
于 2013-03-10T05:10:05.290 回答