Есть ли у 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>
Ответы
Ответ 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 +.
Все, что вам нужно сделать, это разместить исходный код на сервере и запустить его.