PC나 안드로이드에서는 크게 이슈가 없었지만..

항상 아이폰에서는 이슈가 생겼다..
특히 사파리..

history.back 처리를 한 후에 페이지가 정상 동작하지가 않았다..
history.back 한 것을 체크 하여 reload 처리를 해야하는 상황...


구글링을 하여 아래 코드를 넣으면 된다고 하였지만...
이상하게 개발서버에서는 정상적으로 되었지만
운영서버에서는 event.persisted가 정상적으로 잡히지가 않음.. ㅠㅠ

window.onpageshow = function(event){
    if (event.persisted || (window.performance && window.performance.navigation.type == 2)){
        window.location.reload();
    }
};


더 열심히 구글링 한 결과 addEventListener 을 사용하여 해결하였다.
만세!!! 역시.. stackoverflow..

if (document.addEventListener) {
	window.addEventListener('pageshow', function (event) {
		if (event.persisted || window.performance && window.performance.navigation.type == 2) {
			location.reload();
		}
	}, false);
}




출처 : https://stackoverflow.com/questions/17432899/javascript-bfcache-pageshow-event-event-persisted-always-set-to-false

JavaScript - bfcache/pageshow event - event.persisted always set to false?

In a standard Java / SpringMVC / JSP / jQuery web-app, I'm trying to detect a "Back" (or history.go(-1)) event, in order to refresh (AJAX) a summary component/panel content when I return to a page ...

stackoverflow.com

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기