С window.history.pushState
можно указать состояние в историю браузера.Как нажать на историю браузера в IE (> 10) и Edge?
Пример:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<input type="button" value="foo" onclick="setHistory('foo');">
<input type="button" value="bar" onclick="setHistory('bar');">
<script>
function setHistory(string) {
document.title = string;
window.history.pushState(
'object or string',
'',
string+'.html'
);
}
</script>
</body>
</html>
После нажатия на кнопку Foo и бар ответившие записи будут отображаться в истории браузера. Это работает в Firefox, Chrome и Safari. Однако не в IE (> 10) и Edge, даже если они официально поддерживают его. Есть ли способ достичь этого?
Ответы на вопросы Does Internet Explorer support pushState and replaceState? не полезны, поскольку они объясняют проблему только с помощью IE < 10 где pushState
не поддерживается.
Редактировать
Помимо не обновляет историю, pushState
кажется работает иначе отлично в IE и Edge, т.е. обновляет URL, может перемещаться вперед и назад, «назад и вперед выпадающего списка» обновляется соответственно.
Edit 2
Я только что прочитал https://msdn.microsoft.com/en-us/library/ms535864(v=vs.85).aspx. В разделе «Примечания» указано:
«Из соображений безопасности объект истории не раскрывает фактические URL-адреса в истории браузера».
Так что, может быть, часть pushState
Я после просто не поддерживается в IE и Edge?
Вот пример использования заменыState с использованием: http://blog.scoutapp.com/articles/2010/12/07/manipulating-browser-history-with-javascript-pushstate-replacestate –
@RobParsons Спасибо. Но есть ли ответ на проблему с IE/Edge? – Daniel
Надеюсь, вы не против моего упоминания: http://www.w3.org/TR/html5/browsers.html#dom-history-pushstate. 6. Установите адрес документа на новый URL. Примечание. Поскольку это ни навигации контекста просмотра, ни обхода истории ... » – user4749485