2013년 10월 27일 일요일

브라우저 종류 구별하기 java jsp

검색해보면

<!--[if IE]>
<![endif]-->

뭐 이런거 도 나오지만 될 때는 되는데 잘 안 됩니다.

그냥 userAgent 뽑아서 확인하는 게 최곱니다.



1. JavaScript 에서 뽑아서 확인하는 방법입니다.

<script>
var ua = window.navigator.userAgent;
document.write(ua);
</script>


 
2. JSP 에서 뽑아서 확인하는 방법입니다.
 
<%
String ua = request.getHeager("User-Agent");
out.print(ua);
%>


 
뽑아서 보면 대충 이렇게 나옵니다.
 
1. Internet Explorer 11
Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko  
 
1-1. Internet Explorer 10
Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)
 
2. Safari
Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2

3. Chrome
Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36
 
4. Opera
Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36 OPR/17.0.1241.53 

4-1. Opera 구버전
Opera/9.80 (Windows NT 6.1; WOW64; U; ko) Presto/2.10.229 Version/11.62
 
5. Firefox
Mozilla/5.0 (Windows NT 6.3; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0
 
여기서 각각 특징있는 단어를 뽑아서 브라우저를 구별하면 됩니다.
한가지 주의사항이 있는데, IE10까지는 MSIE라는 단어로 구별해왔습니다만 IE11에는 자세히 보면 MSIE라는 단어가 없습니다.
그래서 IE11은 Trident 라는 단어로 구별해야합니다.
Trident라는 단어는 IE6~IE7 에는 없고 IE8~IE11까지 있습니다.
 
오페라도 Opera와 OPR 두 가지로 구별해야겠습니다.


 
1. JavaScript 에서 구별하는 방법입니다.
 
<script>
var b = "";
var ua = window.navigator.userAgent;
if(ua.indexOf('MSIE') > 0 || ua.indexOf('Trident') > 0)
 b = "IE";
else if(ua.indexOf('Opera') > 0 || ua.indexOf('OPR') > 0)
 b = "Opera";
else if(ua.indexOf('Firefix') > 0)
 b = "Firefox";
else if(ua.indexOf('Safari') > 0) {
 if(ua.indexOf('Chrome') > 0)
  b = "Chrome";
 else
  b = "Safari";
}
document.write(ua);
document.write(b);
</script>


 
2. JSP 에서 구별하는 방법입니다.
 
<%
String browser = "";
String userAgent = request.getHeader("User-Agent");
if (userAgent.indexOf("Trident") > 0 || userAgent.indexOf("MSIE") > 0) {
 browser = "IE";
} else if (userAgent.indexOf("Opera") > 0) {
 browser = "Opera";
} else if (userAgent.indexOf("Firefox") > 0) {
 browser = "Firefox";
} else if (userAgent.indexOf("Safari") > 0) {
 if (userAgent.indexOf("Chrome") > 0) {
  browser = "Chrome";
 } else {
  browser = "Safari";
 }
}
out.print(userAgent);
out.print(browser);
%>
 

댓글 2개:

  1. 필요한 정보 정리해주셔서 감사합니다. 유용하게 쓰겠습니다.

    답글삭제