2016-12-06 6 views
2

Я считаю, что вы знаете, что некоторые сайты построены на «одностраничной системе».Обнаружить изменение URL-адреса (не просто хэш-код) с помощью JS/JQuery

В таких системах после нажатия ссылки сайт не перемещает пользователя на другую страницу, а просто перезагружает страницу с помощью Ajax и изменяет URL-адрес.

Я видел много ответов о $(window).on("hashchange"), и я знаю этот трюк, но мне нужно определить изменение цвета WHOLE (не просто его хэш), поэтому мне нужно что-то еще.

Любые идеи, как обнаружить изменение всего URL-адреса?

+1

Не изменилось бы ли изменение к URL-адресу, кроме хеша, чтобы страница перезагрузилась? Таким образом, * НЕ * SPA? – Taplar

+0

Я думаю, вам стоит использовать [$ .unload] (https://api.jquery.com/unload/) как альтернативный вариант –

+0

$ .unload не происходит, потому что страница на самом деле не «разгружается» - только URL меняется. Например, когда я нажимаю кнопку «Воспроизведение» на странице https://www.netflix.com/title/70178217, страница не перезагружается - она ​​просто меняет URL-адрес на https://www.netflix.com/watch/80049213 –

ответ

1

Я не нашел, как определить всю перемену URL, но этот вопрос узнал мне несколько новых вещей.

  1. Вы можете обнаружить с помощью jQuery .on() пользователя нажмите на ссылку «случаи эмуляции перезагрузки страницы» и использовать такое событие, как «перезагрузки страницы события».
  2. Теперь я знаю, что функция window.history.pushState() в html5 позволяет вам изменять URL-адрес без перезагрузки страницы.

Надеюсь, это поможет кому-то.