Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Изменение юрл адреса в адресной строке браузера (https://javascript.ru/forum/misc/20867-izmenenie-yurl-adresa-v-adresnojj-stroke-brauzera.html)

(Sandr) 20.08.2011 19:35

Изменение юрл адреса в адресной строке браузера
 
Помогите решить проблему с изменением адреса сайта в адресной строке браузера.
На сайте практически всё строится на ajax. При нажатии на какую-нибудь ссылку запускается это history.pushState(null, null, 'адрес_ссылки');
Но если пользователь нажмёт "назад" в своём браузере, то юрл в строке изменится, а содержимое на странице нет((
Пробовал сделать как сдесь http://htmlbook.ru/html5/history (последний этап описанный в статье) но у меня по другому сделана загрузка содержимого.

Sweet 20.08.2011 19:49

Какая разница, как сделана загрузка содержимого. Есть событие "popstate". Ловите его и меняете содержимое на странице как хотите.

(Sandr) 20.08.2011 21:16

Sweet,
в том то и дело, что я не пойму как применить popstate.

melky 20.08.2011 23:12

у event есть title, URL и state

<script>
window.addEventListener("popstate", function(e) {
  alert([ e.state, e.URL, e.title, e.type ].join('\n'));
});


history.replaceState({page: 3}, "title 3", "?page=3");
</script>

(Sandr) 22.08.2011 15:49

melky,
для чего этот код?

(Sandr) 22.08.2011 15:50

Я js знаю поверхностно, по этому иногда могу задавать глупые вопросы, вы уж простите :)

Solovei95 23.08.2011 16:39

Мой тебе совет:
window.location = URL;

В HTML5:
window.open(URL,"_target");

(Sandr) 24.08.2011 18:51

Solovei95,
вообще не в тему(

melky 24.08.2011 19:00

Цитата:

Сообщение от (Sandr) (Сообщение 121526)
Но если пользователь нажмёт "назад" в своём браузере, то юрл в строке изменится, а содержимое на странице нет((

Цитата:

Сообщение от Sweet (Сообщение 121527)
Какая разница, как сделана загрузка содержимого. Есть событие "popstate". Ловите его и меняете содержимое на странице как хотите.


Цитата:

Сообщение от melky (Сообщение 121539)
у event есть title, URL и state

<script>
window.addEventListener("popstate", function(e) {
  alert([ e.state, e.URL, e.title, e.type ].join('\n'));
});


history.replaceState({page: 3}, "title 3", "?page=3");
</script>

разжёвано же, подчёркнуто, и пример написан

(Sandr) 25.08.2011 03:06

melky,
сделал так
window.addEventListener("popstate", function(e) {
document.location = document.referrer;
});

В роде бы работает. Как вы думаете, правильно ли?


Часовой пояс GMT +3, время: 11:28.