Имеет ли IE8 готовую поддержку localStorage? - PullRequest
50 голосов
/ 10 августа 2010

Я пытаюсь использовать функцию HTML5 localStorage. Согласно этому блогу это может быть сделано с использованием IE8, однако, когда я пытаюсь использовать его, я получаю ошибку JavaScript 'localStorage is null or not an object'

Итак, мой вопрос: может ли localStorage использоваться IE8 "из коробки"? Вот мой код:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=8" />
    <title>IE8 - DOM Storage</title>
    <script type="text/javascript"> 
        function Save() {
            localStorage.setItem('key','value');            
        }        
    </script>
</head>
<body>        
    <button onclick="Save();">
        Save
    </button>  
</body>
</html>

Ответы [ 5 ]

56 голосов
/ 11 августа 2010

Он поддерживает localStorage, хотя вам нужно быть в режиме IE8 (это не будет работать в режиме IE7).

Чтобы убедиться, что вы работаете в режиме IE8, загрузите консоль разработчика,Вверху убедитесь, что выбран режим IE8.Стандартный режим также подойдет.

В одном вы также хотите убедиться, что вы используете тип документа HTML5.Вы не должны иметь возможность использовать тип документа XHTML с функциями HTML5.

<!DOCTYPE html>

Использование этого типа документа не должно влиять на поддержку вашего браузера.

Также убедитесь, что у вас есть доступ window.localStorage.Это не должно быть проблемой, но IE, как известно, принимает странные проблемы.Возможно, он ищет локально ограниченный объект localStorage?Кто знает.

7 голосов
/ 11 августа 2010

комментарий musicfreak был правильным. Поскольку для этой функции требуется домен, мне пришлось использовать ее только через реальный URL (по крайней мере, localhost), а не открывая его как файл с диска.

Нет необходимости добавлять window.localStorage, поскольку IE8 распознает только localStorage.

4 голосов
/ 24 сентября 2013

В продолжение предыдущего хорошего ответа:

У меня была такая же проблема - хуже!даже IE10 не удался! - и я обнаружил, что решение (для меня) больше связано с моей средой разработки, чем Internet Explorer.Я создал HTML-файл и многократно редактировал его с помощью хорошего текстового редактора.Я мог бы перетащить файл в браузер, чтобы увидеть мой прогресс в разработке страницы, а затем просто обновить окно браузера, когда я обновлял / редактировал различные вещи в файле.

Оказывается, что для Chromeи Firefox и Opera, window.localStorage был допустимым объектом, но для Internet Explorer он был «неопределенным» (как видно в отладчике).Однако, как только я запустил программу веб-сервера (для «localhost») и использовал ее для передачи HTML-страницы в браузер, Internet Explorer предоставил действительный объект («DispHTMLStorage») для window.localStorage.Также обратите внимание, что в Tools / Options / Advanced for IE есть флажок «включить хранилище DOM» - он, по-видимому, установлен по умолчанию, но всегда возможно, что какой-то пользователь отключит его вручную.

1 голос
/ 01 апреля 2016

Попробуйте использовать "IE = edge" вместо "IE = 8" в совместимом с x-ua метатеге
От Microsoft: ( ссылка )

Используйте следующее значение для отображения веб-страницы в режиме EdgeHTML, который является режимом наивысших стандартов, поддерживаемых Internet Explorer, от Internet Explorer 6 до IE11.

<meta http-equiv="x-ua-compatible" content="IE=edge" >
0 голосов
/ 27 июля 2015

Концепция локального хранилища должна работать на IE8 +.

Все, что вам нужно сделать, это поместить исходный код на сервер и запустить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...