2026, 새로운 도약을 시작합니다.

IE 브라우저 버전 체크 및 처리 문의 채택완료

아직 초보라 몰라서 문의 드립니다. 

구글 검색을 해봐도, 버전 체크는 이렇게 하면 된다는 개념만 있지.... 

체크해서 어떻게 처리하고 싶다.....라는 개념 설명이 없네요. (못찾은건지도..)

그러니까..

if (IE 6~9까지일 경우)

 <여기 소스들을 실행>

else

 <여기 소스들을 실행>

이런 구조를 만들고 싶은데, 어떻게 처리하면 좋을까요?

답변 4개

채택된 답변
+20 포인트

php와 js로 구분하겠죠.

php에 사용자의 브라우저를 알아보는 $_SERVER[HTTP_USER_AGENT]가 있어요.

이거하면 ie는 '솰라솰라 msie 숫자 솰라솰라' 이렇게나와요.

msie가 몇버전이라고 알려주는건데 이걸 정규식으로 풀면되요.

if(preg_match('/(?i)msie [원하는숫자]/', $_SERVER[HTTP_USER_AGENT)){

원하는 버전일때의 처리

}else{

나머지 일반처리

}

위에껄 else if문이나 switch case나 아무거나 처리하시면 되요.

근데 php로 처리를 한다면 간단한데 ie에는 호환성보기라는게 있잖아요... 이것까지 처리하려면 js로 써야해요.

js에는 'navigator.appVersion.indexOf('MSIE 숫자')에요.

이게 익스버전나타내주는거고요. 여기서 'MSIE 숫자' 대신에 'Trident/4~6.0'이걸 넣으면 4는 8버전 9는 5버전 10은 6버전으로 나와요.

근데 또 js의 문제는 스크립트사용안함을 사용하는 버전이거나 스크립트 허용체크를 안한 사용자들은 작동을 안한다는거죠...

선택은 알아서 하시길....

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

답변 감사합니다.

근데 아직 해결이 안되네요. ㅜ.ㅡ

댓글을 작성하려면 로그인이 필요합니다.

드래곤된다님의 답변대로 코드 작성하시면 잘되는데요?

다만 드래곤된다님의 코드에 빠진 부분이 있는데, 그대로 붙여넣기하셔서 안되는거 아닌가 모르겠네요.

if(preg_match('/(?i)msie 10/', $_SERVER['HTTP_USER_AGENT'])){

echo "IE10";

}else if(preg_match('/(?i)msie 9/', $_SERVER['HTTP_USER_AGENT'])){

echo "IE9";

}else{

echo "통과";

}

위 처럼 코드 사용하시면 체크 잘 됩니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

익스플로러 11의 경우는 msie라는 문자열이 사라졌습니다.

정확히 기억은 안 나는데 rv:11이란 걸로 거르시면 될 거 같습니다. 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

<script type="text/javascript">

$(document).ready(function(){

   var ua = window.navigator.userAgent;

   var ie = ua.indexOf("MSIE ");

   var ieversion = "";

   if( ie > 0 ) {

      ieversion = parseInt(ua.substring(ie+5, ua.indexOf(".", ie))); 

      if( ieversion>=6 && ieversion<=9 ){

          //코드실행

      }

      else{ //코드실행 }

   }

});

</script>

이렇게 시도해 보세요 ^^ 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

답변 감사합니다.

이건 크롬에서 에러나는데요... 이유는 모르겠습니다. ㅜ.ㅡ

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고