JAVA 또는 Javascript로 브라우저를 구분하는 예제입니다.

 

 

 

각 브라우저별 해더정보는 다음과 같습니다.


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까지 있습니다.
 
오페라도 OperaOPR 두 가지로 구별해야겠습니다.



java

private String getBrowser(HttpServletRequest request) {
  String header = request.getHeader("User-Agent");
  if (header != null) {
   if (header.indexOf("Trident"> -1) {
    return "MSIE";
   } else if (header.indexOf("Chrome"> -1) {
    return "Chrome";
   } else if (header.indexOf("Opera"> -1) {
    return "Opera";
   } else if (header.indexOf("iPhone"> -1
     && header.indexOf("Mobile"> -1) {
    return "iPhone";
   } else if (header.indexOf("Android"> -1
     && header.indexOf("Mobile"> -1) {
    return "Android";
   }
  }
  return "Firefox";
 }
cs



 

javascript 

function browserCheck(){
 var browser = navigator.userAgent.toLowerCase();
 var text = "";
 if ( -1 != browser.indexOf('chrome') )
  text = 'chrome';
 if ( -1 != browser.indexOf('trident') )
  text = 'ie';
 if ( -1 != browser.indexOf('opera'|| -1 != browser.indexOf('opr') )
  text = 'opera';
 if ( -1 != browser.indexOf('firefox') )
  text = 'firefox';
 
}
cs

 

 

도움이 되셨다면 공감을 부탁드립니다. ^^ 

by 개발자 CofS 2016.01.05 14:44