Ответ 1
var stateObj = { foo: "bar" };
history.pushState(stateObj, "page 2", "bar.html");
Релевантная ссылка на документы.
В принципе, у меня есть страница, содержащая форму. Когда пользователь отправляет эту форму, вызывается функция Javscript, и пользователь динамически представляется с новой формой.
В этот момент я хочу, чтобы пользователь мог нажать кнопку "Назад в браузере" и вернуться к первой форме. Возможно ли это?
Спасибо за быстрые ответы, но у меня возникли проблемы с работой pushState. После нажатия кнопки "Назад" HTML по-прежнему отображается "вторая форма".
Вот код, который я использовал для его проверки:
<script>
function newPage(){
history.pushState({state:1}, "State 1", "?state=1");
document.getElementById('formBox').innerHTML="second form";
}
</script>
<input type="button" onclick="newPage();" value="forward" />
<div id='formBox'>first form</div>
var stateObj = { foo: "bar" };
history.pushState(stateObj, "page 2", "bar.html");
Релевантная ссылка на документы.
Я выполнил аналогичное поведение с API-интерфейсами истории/состояния HTML5, используя History.js, описанный таким образом:
Обеспечьте опыт перекрестной совместимости для всех браузеров HTML5 (все они реализовать API истории HTML5 несколько иначе разные типы поведения, а иногда и ошибки - History.js исправляет это обеспечивая, чтобы опыт был таким же ожидаемым/тем же/большим во всем браузеры HTML5)
Пример:
History.pushState({state:1}, "State 1", "?state=1");