일부 모바일 브라우저에서 history.back() 동작하지 않는 문제 해결하기... 블록

모바일 브라우저를 사용하다 보면 기본 브라우저와 오페라, 기타 브라우저에서 뒤로가기 버튼이 동작하지 않거나 뒤로 가기를 했어도 폼이 재전송 되지 않는 문제가 있어 난감할 때가 있습니다. 이땐 아래와 같은 소스로 문제를 해결할 수 있지만 이건 브라우저 버그라 약간의 편법을 썼지만 사용하는 데는 지장이 없습니다.

소스 설명을 하자면 a 링크 클릭을 할 때 자바스크립트가 호출이 되는데 스마트폰의 userAgent 값을 켑쳐해 거기에 OPR(오페라)과 U;(기본 브라우저) 란 문자가 있으면 현재 페이지를 호출한 레퍼러 주소로 이동하고 검출이 안되는 기타 브라우저는 정상적으로 history.back() 함수를 호출해 뒤로가지게 하는 소스입니다. 간단하죠?

1
<a href="javascript: var uAgent=navigator.userAgent; if(uAgent.match(/opr|u;/i)) location.href=document.referrer; else history.back();">[뒤로]</a>

덧글

댓글 입력 영역
* 비로그인 덧글의 IP 전체보기를 설정한 이글루입니다.


웹로그 검색