Как изменить страницу из JavaScript
У меня есть следующий код, который изменяет страницы в JavaScript:
var newUrl = [some code to build up URL string];
window.location.replace(newUrl);
но он не меняет верхний URL, поэтому, когда кто-то нажимает кнопку назад, он не возвращается на предыдущую страницу.
Как я могу изменить JavaScript верхний URL-адрес, чтобы кнопка возврата браузера работала.
4 ответа:
document.location.href = newUrl;https://developer.mozilla.org/en-US/docs/Web/API/document.location
простое присваивание
window.locationилиwindow.location.hrefдолжно быть прекрасно:window.location = newUrl;однако ваш новый URL-адрес заставит браузер загрузить новую страницу, но похоже, что вы хотите изменить URL-адрес, не покидая текущую страницу. У вас есть два варианта для этого:
используйте хэш URL. Например, вы можете перейти от
example.comдоexample.com#fooбез загрузки новой страницы. Вы можете просто установитьwindow.location.hashсделать это легко. Затем, вы должны слушать HTML5hashchangeсобытие, которое будет запущено, когда пользователь нажимает кнопку "Назад". Это не поддерживается в старых версиях IE, но проверить jQuery BBQ, который делает эту работу во всех браузерах.вы можете использовать историю HTML5 для изменения пути без перезагрузки страницы. Это позволит вам изменить от
example.com/fooдоexample.com/bar. Используя это легко:
window.history.pushState("example.com/foo");когда пользователь нажимает "назад", вы получите окна
popstateсобытие, которое вы можете легко прослушать (jQuery):
$(window).bind("popstate", function(e) { alert("location changed"); });к сожалению, это поддерживается только в очень современных браузерах, таких как Chrome, Safari и Firefox 4 beta.