Подтвердить что ты не робот

Есть ли у IE8 готовые средства поддержки "localStorage",

Я пытаюсь использовать функцию 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>
4b9b3361

Ответ 1

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

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

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

<!DOCTYPE html>

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

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

Ответ 2

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

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

Ответ 3

Расширение предыдущего хорошего ответа:

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

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

Ответ 4

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

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

<meta http-equiv="x-ua-compatible" content="IE=edge" >

Ответ 5

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

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