개발

모바일 웹 input focus 안되는 문제

개미v 2024. 7. 18. 12:53

페이지가 로드되고 나서 특정 input에 focus 되도록 하려고 하는데 되는 경우와 안되는 경우가 있습니다.

 

아래는 매우 간단한 HTML 예제 코드입니다.

HTML 코드상으로는 완전히 똑같을지라도, 어떻게 페이지가 전환 되는지에 따라서 차이가 발생합니다.

<!DOCTYPE html>
<html lang="ko">
<head>
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
	<script>
		$(document).ready(function() {
			$('#message').focus();
		});
	</script>
</head>

<body>	
	<input type="text" id="message" autofocus="autofocus" >	
</body>
</html>

 

focus 안되는 경우

사용자가 의도해서 HTTP POST로 페이지가 전환되는 경우 모바일 크롬 브라우저에서는 focus가 안됩니다.

보안상인지 버그인지는 모르겠습니다.

다른 모바일 브라우저에서는 다 되는데 크롬만 안됩니다.

 

focus 되는 경우

위 경우만 제외하고는 다 됩니다.

- HTTP GET으로 페이지 이동시 focus 됨

- 다른 브라우저에서는 HTTP POST도 모두 focus 됨

- 사용자 의도와 무관한 (예 : 웹소켓 수신시 동작) HTTP POST로 페이지 전환되는 경우 모바일 크롬 브라우저에서 focus 됨