당신은 Microsoft Internet Explorer 4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; InfoPath.1) 브라우저로 접속하셨습니다.
자바스크립트를 이용하면, 현재 웹서버에 접속한 브라우저의 제품명 및 버전을 알아낼 수
있습니다. 브라우저의 종류를 알아내기 위해서 사용되는 객체는 navigator객체입니다.
이 navigator객체는 크게 appName속성과 appVersion속성이 있는데, appName은 브라우저의
제품명, appVersion은 브라우저의 버전을 지정하게 됩니다. 다음은 navigator객체의 사용
예입니다.
아래는 브라우저의 종류에 따라 바뀌게 되는 navigator객체의 속성들입니다.
브라우저 종류 |
운영체계 |
navigator.appName |
navigator.appVersion |
영문 Netscape 4.5 |
Windows 98 |
Netscape |
4.51 [en] (Win98; I) |
한글 Internet Explorer 4.0 |
Windows 98 |
Microsoft Internet Explorer |
4.0 (compatible; MSIE 4.01; Windows 98) |
그러면 왜 navigator객체가 중요한지에 대해 설명하도록 합니다.
많은 인터넷 사용자들은 제각기 다른 종류의 브라우저 혹은 운영체계를 이용하여 인터넷에
접속합니다. 꼭 넷스케이프만으로 접속하라는 법이 없고, 사용자의 운영체계가 반드시
Windows 98 혹은 95라는 법은 없습니다. 요즘은 windows 98이 주류를 이루고 있지만, 어떤
사용자들은 Windows NT를 사용할 수도 있고, 매킨토시 혹은 리눅스 운영체계를 사용할 수도
있습니다. 괴퍅한 사용자는 아마도 핫자바브라우저를 이용해서 여러분들의 홈페이지를 구경
하는 수도 있습니다.
HTML이 국제 표준규약이기는 하나 브라우저의 종류에 따라 문서가 보이는 모습은 약간씩
다릅니다. 그리고, 특정한 브라우저에서만 되는 기능들이 꽤 있습니다(예를 들어 Netscape의
<BLINK>태그 혹은 Internet Explorer의 <MARQUEE>태그 같은 경우 및 요즈음
등장한 수많은 DHTML기능). 물론, 대부분의 홈페이지 개발자들은 어떠한 브라우저에서도
자신의 홈페이지가 똑같이 보이기를 원할 것입니다. 특정 브라우저에서만 되는 기능이 뛰어
나다해서 그것만 고집해서 쓸 수는 없는 일입니다. 그래서, 이전에는 홈페이지 입구에
Netscape버전, Explorer버전 각각 다르게 들어가는 버튼을 달아 놓은 경우가 있었습니다.
하지만, 자바스크립트를 이용하면 자동으로 브라우저를 체크하여 브라우저의 종류에 따라
홈페이지를 다이나믹하게 구성할 수 있습니다. 아래는 어떠한 페이지에서 Netscape와
Internet Explorer를 구분하여 각각 다른 결과를 출력하게 하는 예입니다.
이제, 그러면 브라우저의 버전을 알아내는 방법을 알아 보도록 합니다. navigator.appVersion
속성을 보아서 알 수 있듯이 비교적 상세한 버전정보가 설정됩니다. 브라우저의 버전 뿐만
아니라, 현재 브라우저가 설치된 운영체계의 종류까지 기록되는데, 대부분 보면 맨 앞부분에
브라우저의 버전번호가 기록되게 됩니다. 단지 버전만을 알아내기 위해서는 navigator.
appVersion문자열의 앞부분만 추출하여 알아내는 방법을 사용합니다.
아래는 특정 브라우저의 버전을 알아내어 그에 따라 서로 다른 행동을 취하게 하는 예제입니다.
앞장에서 배운 프레임제어를 응용해 봅니다.
※ indexOf(stringexpression)함수는 특정문자열 내에 찾고자 하는 특정문자 혹은
문자열이 존재하는지의 여부를 알아내는 함수이다. 찾고자 하는 문자열이 없을 경우는
-1 값을 반환하며, 발견되었을 경우는
(특정 문자열 내에 찾고자 하는 문자열이 처음 나타나는 위치 - 1)
을 반환합니다. 이 함수는 String 객체의 멤버 함수이므로 일반 변수에서는 사용할 수
없으며, 반드시 String 객체를 선언해서 사용해야 합니다. navigator.appVersion속성은
String이므로 바로 쓰일 수 있습니다. 아래는 indexOf()함수에 대한 설명입니다.
사용예 |
결과 |
var s = new String('MSIE 4.01; Windows 98');
var i = s.indexOf('4.01'); |
i = 5 |
var s = new String('MSIE 4.01; Windows 98');
var i = s.indexOf('Netscape'); |
i = -1 |
지금까지 브라우저의 정보를 알아내는 자바스크립트 사용 예를 설명하였습니다. 다음
장에서는 가장 관심이 많을 것으로 생각되는 window객체에 대해서 설명하도록 합니다.