Проверить наличие HTML 5 localStorage

Как проверить соответствие HTML 5 localStorage для браузера пользователей?

Я использовал две проверки:

    if (window.localStorage) {
       // localStorage works!
    }

и

    if (typeof(localStorage) != 'undefined') {
         // localStorage works!
    }

Кроме того, я видел функцию онлайн, которая использует блок try/catch для проверки того, может ли localStorage добавлять пару ключ/данные или выдает ошибку.

Какой из этих трех методов вы бы порекомендовали, и есть ли какие-либо различия между первым и вторым?

Ответ 2

Ниже приведен код Modernizr для localstorage

tests['localstorage'] = function() {
    try {
        localStorage.setItem(mod, mod);
        localStorage.removeItem(mod);
        return true;
    } catch(e) {
        return false;
    }
};

IMO это в значительной степени рекомендуемый способ проверить его.

Ответ 3

Оба эквивалентны здесь. Сначала короче и, следовательно, более удобно. Этот метод используется, например, в код MDN для добавления имитации localStorage, которая использует файлы cookie.