it-roy-ru.com

Поддерживает ли Internet Explorer pushState и replaceState?

Кто-нибудь знает, поддерживает ли Internet Explorer методы history.pushState() и history.replaceState() для манипулирования историей браузера ? Учитывая, что они только что реализованы в Firefox 4, я не затаив дыхание, но кто-нибудь знает, если они появятся в IE9?

137
David Johnstone

Вероятно, лучшим сайтом для информации о совместимости браузера является CanIUse . Вот раздел о история .

Сводка - IE9: нет, IE10: да (на момент предварительного просмотра платформы 3)

Первый релиз-кандидат IE9 (выпущенный 10 февраля 2011 г.) не поддерживает history.pushState или history.replaceState. Как правило, после добавления продукта на стадию RC новые функции не добавляются, поэтому весьма маловероятно, что окончательная версия IE9 будет поддерживать эти методы.

У Microsoft есть хорошие обзор для разработчиков функций, которыми обладает IE9.

Обновление: Internet Explorer 9 был запущен (14 марта 2011 г.) и определенно не поддерживает history.pushState() или history.replaceState().

Обновление 2: текущая платформа предварительного просмотра IE10 по-прежнему не поддерживает pushState/replaceState .

Обновление 3: Предварительный просмотр платформы 3 IE10 поддерживает API истории!Подробности

193
dave1010

IE9 не поддерживает это.

Однако вы можете обойти использование Polyfill для получения функциональности - History.js https://github.com/browserstate/history.js .

Modernizr хорошо справляется со списком HTML 5 Polyfills здесь https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills .

Предостережение заключается в том, что он добавит строку запроса к вашему URL в браузерах, которые поддерживают только функции HTML 4.

17
Sebastian Patten

В Internet Explorer 10 добавлена ​​поддержка интерфейса истории черновой спецификации HTML5, которая включает методы, позволяющие управлять стеком истории сайта и URL-адресом.

Исходная ссылка: https://msdn.Microsoft.com/en-us/library/ie/hh920758(v=vs.85).aspx

0
QC-cheetah

Кстати, вы можете получить такую ​​ошибку по причине абсолютного пути в pushState (). Когда я установил относительный путь, ошибка исчезла.

0
f0rmat1k