navigator (1)

웹애플리케이션을 개발할때 사용자의 브라우저가 무엇인지는 정말 중요한 요소이다. 만약 여러가지 브라우저에서 모두 정상적인 화면을 보여주려면 정말 많은 노력을 해야한다. 브라우저마다 화면에 보여지는 모습이 다를때가 많기 때문이다. 

오늘은 사용자의 브라우저가 무엇인지를 구분할 수 있게해주는 Navigator 객체에 대해서 알아보도록 하겠다.


Navigator 속성

네비게이터 객체의 속성은 아래와 같다. 

PropertyDescription
appCodeName브라우저 고유의 코드명에 대한 속성이다. 넷스케이프는 Netscape , 익스플로러는 Microsoft Internet Explorer 값을 가진다.
appVersion브라우저 버전, 언어, 호환성 등등의 정보를 갖는 속성이다.
language넷스케이프에서만 사용되는 속성이다. 언어코드를 두개의 케릭터로 갖는다. ko, en 처럼 말이다.
mimTypes[]클라이언트(브라우저)가 지원하는 모든 MIME 타입을 갖고있는 속성이다.역시 넷스케이프 전용이다.
platform[]브라우저의 플랫좀 정보를 갖는 속성이다."Win32" for 32-bit Windows operating systems
plugins[]브라우저에 설치된 모든 플러그인의 정보를 갖는 속성이다. 넷스케이프 전용이다.
userAgent[]코드명과 브라우저의 버전을 갖는 속성이다. 서버에서 클라이언트를 구분짓기위해 사용된다.

Navigator 메소드

다음은 Navigator에 특화된 메소드들입니다.

MethodDescription
javaEnabled()자바스크립트가 활성화된 클라이언트인지를 반환합니다. 브라우저에서 자바스크립트 실행을 금지했다면 false를 반환합니다.
plugings.refresh이 메소드는 새로 설치된 플러그인을 사용하도록 설정하고 모든 플러그인 목록에 추가합니다. Netscape only.
preference(name,value)서명된 스크립트가 넷스케이프의 속성값을 가져오거나 세팅할 수 있도록 해주는 메소드입니다. 두번째 인자가 없으면 getter의 역할을 하고 두번째 인자를 넣어주면 setter의 기능을 하게됩니다. Netscape only.
taintEnabled()데이타 tainting 의 활성화 여부를 참, 거짓으로 반환합니다. 


브라우저 구별하기

아래 소스를 브라우저 종류별로 테스트해보세요. 

<html>
<head>
<title>Browser Detection Example</title>
</head>
<body>
<script type="text/javascript">
<!--
var userAgent   = navigator.userAgent;
var opera       = (userAgent.indexOf('Opera') != -1);
var ie          = (userAgent.indexOf('MSIE') != -1);
var gecko       = (userAgent.indexOf('Gecko') != -1);
var netscape    = (userAgent.indexOf('Mozilla') != -1);
var version     = navigator.appVersion;

if (opera){
  document.write("Opera based browser");
  // Keep your opera specific URL here.
}else if (gecko){
  document.write("Mozilla based browser");
  // Keep your gecko specific URL here.
}else if (ie){
  document.write("IE based browser");
  // Keep your IE specific URL here.
}else if (netscape){
  document.write("Netscape based browser");
  // Keep your Netscape specific URL here.
}else{
  document.write("Unknown browser");
}
// You can include version to along with any above condition.
document.write("<br /> Browser version info : " + version );
//-->
</script>
</body>
</html>

 

 

 

Reference : http://www.tutorialspoint.com/javascript/javascript_browsers_handling.htm