IE 브라우저 버전 체크 및 처리 문의

IE 브라우저 버전 체크 및 처리 문의

QA

IE 브라우저 버전 체크 및 처리 문의

본문

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

 

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

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

  

그러니까..

 

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

 <여기 소스들을 실행>

else

 <여기 소스들을 실행>

  

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

 

 

 

 

 

이 질문에 댓글 쓰기 :

답변 4

 

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의 문제는 스크립트사용안함을 사용하는 버전이거나 스크립트 허용체크를 안한 사용자들은 작동을 안한다는거죠...

 

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

<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>

 

이렇게 시도해 보세요 ^^ 

 

 

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

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

 

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 "통과";

}

 

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

답변을 작성하시기 전에 로그인 해주세요.
전체 0 | RSS
QA 내용 검색
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT