2012-01-31 4 views
2

History.js을 사용하여 Javascript로 조작 된 UI 상태를 추적하려고합니다. 목적은 사용자가 그것을 남아있는 상태에서 (링크를 통해 시스템의 다른 페이지를 방문한 후) 페이지로 돌아오고 싶어한다는 것이다이를 위해다른 페이지에서 뒤로 버튼을 누른 후 History.js 상태로드

나는 그런처럼 popstate의 이벤트를 바인딩 :.

History.Adapter.bind(window, 'popstate', function() { 
    console.log("Popstate"); 
    var History = window.History; 
    var State = History.getState(); 
    LoadState(State, true); 
}); 

페이지에서 계속 탐색하는 동안 대부분의 브라우저에서 정상적으로 작동하지만 다른 페이지에서 페이지로 돌아갈 때만 Chrome이 이벤트를 실행하는 것으로 보입니다. 나는 바인딩을 시도했습니다 statechange,하지만 페이지 내비게이션에서만 트리거하고 페이지를 "다시로드"하지 않는 것 같습니다.

페이지로 돌아갈 때 이벤트를 트리거하는 방법이 있다고 가정해도 정확합니까? 그렇다면 어떻게?

답변

1

다른 페이지에서 다시로가는 후 페이지를로드 할 때이 또한 준비 이벤트 트리거를 만드는 history.navigationMode = 'compatible'

를 선언함으로써이 문제에, 하나 개의 솔루션을 발견. 거기에서 히스토리 오브젝트를 검색하고 평소와 같이로드 할 수 있습니다.

+0

Opera 이외의 브라우저에서도 작동합니까? 내가 말할 수있는 한, Opera만이 navigationMode 속성을 지원합니다. – joanwolk

+0

오페라에서 실제로 사용 해본 적이 없지만 Firefox와 Chrome에서 내가 원하는 동작을 유발했습니다. –

관련 문제