Как изменить страницу из 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.