2016-07-06 7 views
1

jquery로 사용자가 브라우저 뒤로 단추를 클릭 할 때 함수를 트리거하는 것이 가능합니까? 라이트 박스/위젯이 열려있을 때 창을 채 웁니다. 닫기 버튼 등이 있지만 사용자가 실수로 뒤로 버튼을 누르는 경우이 버튼을 닫으면 좋을 것입니다.사용자가 브라우저 뒤로 단추를 클릭 할 때 트리거 이벤트

나는 지금까지이 있지만 기능 나던 기능 에서는 event.preventDefault의 시작이 줄을()를 실행하지 않음으로써 모든

$(window).on("navigate", function (event, data) { 
      event.preventDefault(); 
      console.log('BACK PRESSED'); 
      var direction = data.state.direction; 
      if (direction === 'back') { 
       if(widgets.full_active){ 
        $('.close', widgets.active_widget).click(); 
        event.preventDefault(); 
        console.log('CLOSE THIS'); 
       } 
      } 
      if (direction === 'forward') { 
       // do something else 
      } 
     }); 

실행하는 것;은 페이지가 변경되지 않음을 의미합니다.

+0

대신 window.onbeforeunload 이벤트를 사용하십시오. –

+1

^하지만 탭/창을 닫거나 사용자가 다른 사이트로 이동할 때도 이벤트가 발생합니다. 뒤로 버튼 클릭만으로 언로드 이벤트가 발생한시기를 알 수있는 방법이 없습니다. –

+0

http://stackoverflow.com/questions/3522090/event-when-window-location-href-changes 같은 개념 – aximus

답변

0

일반적으로 여기에 설명 된 브라우저의 기본 JavaScript API를 사용하여 수행합니다 (Manipulating the Broser History).

jQuery에서는 사람들이 보통이 플러그인을 사용하는 것을 보았습니다 : History.js, 어떤 사람인지 알 수는 없습니다.

찾고있는 이벤트는 onpopstate입니다.

popstate 이벤트는 창마다 전달되는 같은 문서에 대한 두 개의 기록 항목 사이의 활성 기록 항목 변경됩니다.

관련 문제