티스토리 뷰브라우저에서 뒤로가기 시 크롬을 제외한 브라우저에서는 BFCache[https://developer.mozilla.org/en-US/docs/Working_with_BFCache]로 인해 뒤로가기 시에는 자바스크립트가 다시 불리지 않는다. history.back 이벤트 발생 시 함수를 실행하기 위해서는 아래의 코드를 사용하면 된다. None jQuery
jQuery
댓글
728x90 300x250 뒤로가기 제어하기 방법 1.
방법 2. 페이지 리로드하지 않고 url만 변경하기 history.pushState( state , 'title', 'url');
방법 3. 태그에 웹브라우저 뒤로가기 / 앞으로가기 추가
이 구문은 뒤로가기 액션이 들어올때 히스토리를 한칸 앞으로 옮겨줍니다. 실질적으로 뒤로가기가 되지 않는 효과가 있습니다. 이후 모달을 닫는 로직이 들어있는 함수를 실행 시켜주었습니다. 여기서 한가지 주의 할 점은 이후 모달이 삭제되어야 한다는 점입니다. 만약 삭제 되지 않고 display:none 등으로 처리되면 뒤로가기 할때에 다시 마운트 되고 계속 히스토리 스택을 쌓으려고 하기 때문에 주의 하여야 합니다. 참고 https://developer.mozilla.org/en-US/docs/Web/API/History_API#The_pushState()_method https://velog.io/@bclef25/%EC%9B%B9%EC%97%90%EC%84%9C-%EB%92%A4%EB%A1%9C%EA%B0%80%EA%B8%B0%EB%A5%BC-%EB%A7%89%EA%B3%A0-%EB%AA%A8%EB%8B%AC%EC%9D%84-%ED%81%B4%EB%A1%9C%EC%A6%88-%EC%B2%98%EB%A6%AC%ED%95%98%EA%B8%B0-%EC%9C%84%ED%95%9C-%EB%B0%A9%EB%B2%95 https://developer.mozilla.org/ko/docs/Web/API/WindowEventHandlers/onhashchange 728x90 300x250 '퍼블리싱 > html css js' 카테고리의 다른 글
Back Forward Cache 란 브라우저의 뒤로가기시 브라우저가 단일 세션내에서 자바스크립트 상태 및 웹 페이지를 전체를 캐싱함으로써 전체적은 응답속도를
빠르게 동작하기위해 사용되는 캐시입니다. 이 캐시는 페이지에 대한 추가적인 로딩을 하지않고 자바스크립트 상태 까지 유지하고 있기 때문에 페이지 로딩시 반드시 한번 호출되어야 하는 자바스크립트가 있다면 호출되지 않기 때문에 문제가 발생할 수 있습니다.
window.onpageshow = function(event) { if ( event.persisted || (window.performance && window.performance.navigation.type == 2)) {
// Back Forward Cache로 브라우저가 로딩될 경우 혹은 브라우저 뒤로가기 했을 경우 // 이벤트 추가하는 곳 } } 결과는 아주 잘된다. 대만족 |