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' の値を取得できません: オブジェクトが null または未定義です

4

1 に答える 1

2

これを試して。すでに使用している場合は、もう少し直接的ですtry/catch

デモ: jsフィドル

脚本:

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 に答える