2016-12-06 1 views
2

일부 사이트는 "한 페이지 시스템"을 기반으로한다는 것을 알고 있습니다.JS/Jquery를 사용하여 URL 변경 감지 (해시뿐만 아니라)

링크를 클릭 한 후 사이트에서 사용자를 다른 페이지로 이동시키지 않고 Ajax로 페이지를 다시로드하고 URL을 변경합니다.

나는 $(window).on("hashchange")에 대한 많은 답을 보았으며이 트릭을 알고 있지만 전체 URL 변경 (해시가 아닌)을 감지해야하므로 다른 뭔가가 필요합니다.

아이디어 전체 URL 변경을 감지하는 방법은 무엇입니까?

+1

해시가 아닌 다른 URL을 변경해도 페이지가 다시로드되지 않습니까? 따라서 * NOT * 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. 이제 html5의 window.history.pushState() 함수를 사용하면 페이지를 다시로드하지 않고 URL을 변경할 수 있습니다.

희망, 그것은 누군가를 도울 것입니다.