답변 2javascript:history.back();이것 대신에 아래처럼 시도해 보세요. onclick="window.location.replace('<?php echo $_SERVER['HTTP_REFERER'] ?>');" 위 방식대로 해보앗는데도 변수가 저장이 안되어서 넘어가지가 않네요... 에러가 뜨지는 않던가요? 에러는 뜨지 않아요... echo로 찍어보면 전페이지주소가 아니라 현재페이지 주소가 찍히네요... 그렇다면 <?php echo $_SERVER['HTTP_REFERER'] ?> 이것 대신 전페이지주소넣으면 이동을 되네요... 도움 감사합니다^^
이방식으로 해결했습니다 썩구노트뒤로가기 앞으로가기 새로고침 본문뒤로가기 : <a href="javascript:history.back()">뒤로갈껴~</a> 나모에서는 하이퍼링크
만들 문자나 그림을 선택한 후 '주소'창에
:: 뒤로가기 ::
새로고침 :: 앞으로가기 개요유저가 결제를 하는 프로세스에 들어와 있는 순간 브라우저 백 & 새로고침을 할 때 프론트에서는 어떻게 대응해야 할까? 대응책1. 브라우저 뒤로가기 이벤트및 새로고침 이벤트를 조작해서 우리 원하는 처리를 해준다. => 이건 아쉽게도 크롬 브라우저 사양상 거의 불가능했다. 크롬에서 브라우저 이동 이벤트(popState, hashChange)에 대한 트리거 발생이 유저쪽에서의 interaction (click같은) 가 없으면 trigger되지 않는다.(javascript로 클릭이벤트 같은걸 발생시켜도 안됨)
2. history를 조작한다. => pushState, updateState를 이용해 history를 조작해서 유저가 이동할 url 자체를 변경시켜 결제에 들어온 시점에서는 이동해도 에러페이지 url, 이나 에러처리 url을 history에 넣어준다. (Safari의 bfcache정책도 감안해서 리로드시 javascript를 다시 리로드하도록 하는것도 잊지않기를.. )
history & hash? 를 다루다보니 문득 Vue의 history mode에 대해서 떠올라서 밑의 링크가 아주아주아주 잘 설명해주셨다. https://reimaginer.tistory.com/entry/spa-and-spa-routing SPA와 SPA 라우팅 원리 SPA와 SPA 라우팅 원리 이번 포스팅에서 웹서비스가 Single Page Application(이하 SPA)까지 발전하게 된 경위와 SPA의 라우팅의 원리에 대해서 알아보려고 합니다. 스펙을 일일이 참고해서 작성하지 못하 www.reimaginer.me Iphone 뒤로가기시 브라우저 새로고침이 안되는 현상 Debugging보통 크롬기반 브라우저의 history.back()은 이전 페이지 정보를 refresh 한다. 하지만 Safari의 경우 그렇지 않다. 페이지에 대한 context들을 Safari에서 저장하고 있기 때문이다. 따라서 Safari에서 뒤로가기를 클릭하면, 다시 페이지를 refresh하지 않는 이상 JavaScript의 window.onload, JQuery의 document.ready()는 정상동작하지 않는다는 것이다. 해결을 위해선 별도로 이벤트를 구현해야하는데 다음과 같다. window 객체의 onpageshow라는 이벤트를 구현하면 아이폰에서 브라우저 백버튼을 눌렀을 때도, 원하는 결과를 얻을 수 있다.
이와 같이 function을 짜준다면 history.back()시에도 원하는 결과를 얻을 수 있다. JQuery에서, event.originalEvent 를 체크하는 이유는 브라우저에서 발생시킨 event 내에 event.originalEvent 가 없을 수 있기 때문에 존재하는지 체크가 먼저 선행되어야한다. 그리고 persisted 를 통해, 이 event가 백버튼에 대한 이벤트인지 확인 할 수 있다. |