#javascript #jquery #html #google-chrome
#javascript #jquery #HTML #google-chrome
Вопрос:
JavaScript:
$(document).ready(function() {
window.history.replaceState({some JSON}, "tittle", aHref);
$(window).bind("popstate", function(){
alert("hello~");
});
});
Когда www.example.com сначала загружается страница, выполняется описанное выше действие. Затем щелкните ссылку href на этой странице, и будет загружена другая страница. В это время я нажимаю кнопку «Назад» в Chrome, и не появляется предупреждение «привет ~». Но страница, на которую ссылается aHref, загружается.
Почему?
Ответ №1:
Если вы хотите, чтобы кнопки назад / вперед вызывали навигацию, используйте pushState
, а не replaceState
:
window.history.pushState({ "some": "object" }, "title", aHref);
pushState
Метод добавляет запись истории, тогда как replaceState
заменяет текущую запись истории.
Комментарии:
1. Извините, я новичок в интерфейсе.
2. «заменить» означает удаление текущей записи и ввод новой записи; «нажать» означает просто ввод новой записи. Это правильно?
3. Если я не нажимаю ни pushState, ни replaceState, добавлена ли новая запись в историю?
4. Да, это верно в отношении replaceState. Я не понимаю, что еще вы спрашиваете. Записи истории добавляются при переходе по обычным URL-адресам или использовании
pushState
.