Navigator 객체는 브라우저 종류, 버전 등에 대한 정보를 제공한다.
Netscape Navigator 브라우저로부터 온 객체 이름이며, IE에서는 커스텀화 된 함수도 제공하지만 이걸 쓰는 목적이 크로스 브라우징을 위한 것이므로 생략한다.
navigator 프로퍼티 정보 중 userAgent는 브라우저가 User-Agent Http 헤더에 넣어 전송하는 문자열이다.
이는 appName과 appVersion 등의 모든 정보를 포함하며, 더 자세한 정보는 추가적으로 담고 있다.
이 정보는 표준화된 서식이 없어서 브라우저 특성에 따라 파싱해줘야 한다.
이 정보 중 Mozilla/version의 뜻은 Netscape 브라우저 버전과 호환 가능하다는 의미로 넣은 것이라고 한다.
리눅스에서는 세부 OS 정보가 Firefox(우분투에서는 기본 브라우저)에서만 식별 가능하다.
크롬이나 오페라 같은 경우에는 나오지 않는다고 한다.
맨 밑의 참조한 사이트에서 보여주는 예제 처럼 이런 식으로 사용한다.
그런데 브라우저에서 전달해주는 정보가 실제 브라우저 버전이나 정보와 일치하지 않을 때가 꽤 있어서 추가적인 작업이 필요할 때가 많다.
자료 출처(2020-01-13 참조) :
https://jang8584.tistory.com/225
https://kkyunstory.tistory.com/95
http://egloos.zum.com/slog2/v/3845060
https://jang8584.tistory.com/225
Netscape Navigator 브라우저로부터 온 객체 이름이며, IE에서는 커스텀화 된 함수도 제공하지만 이걸 쓰는 목적이 크로스 브라우징을 위한 것이므로 생략한다.
navigator 프로퍼티 정보 중 userAgent는 브라우저가 User-Agent Http 헤더에 넣어 전송하는 문자열이다.
이는 appName과 appVersion 등의 모든 정보를 포함하며, 더 자세한 정보는 추가적으로 담고 있다.
이 정보는 표준화된 서식이 없어서 브라우저 특성에 따라 파싱해줘야 한다.
이 정보 중 Mozilla/version의 뜻은 Netscape 브라우저 버전과 호환 가능하다는 의미로 넣은 것이라고 한다.
리눅스에서는 세부 OS 정보가 Firefox(우분투에서는 기본 브라우저)에서만 식별 가능하다.
크롬이나 오페라 같은 경우에는 나오지 않는다고 한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
var userAgent=navigator.userAgent.toLowerCase();
var browser;
if(userAgent.indexOf('edge')>-1){
browser='EDGE';
}else if(userAgent.indexOf('whale')>-1){
browser='NAVER Whale';
}else if(userAgent.indexOf('chrome')>-1){
browser='CHrome';
}else if(userAgent.indexOf('firefox')>-1){
browser='Firefox';
}else{
browser='IE';
}
//indexof 함수를 이용해서 포함된 정보를 검색한다.
| cs |
맨 밑의 참조한 사이트에서 보여주는 예제 처럼 이런 식으로 사용한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
try{
var ua = navigator.userAgent;
userAgent = ua.toUpperCase();
return userAgent =
NT 5.1 : windows XP
NT 6.1 : windows vista
NT 6.1 : windows 7
NT 6.2 : windows 8
NT 6.3 : windows 8.1
NT 10.0 : windows 10
IPAD : IOS
ANDROID : Android
BLACKBERRY : BlackBerry
MAC : MAC
SYMBIAN : Symbian (노키아)
UBUNTU : 86_64가 있을 때 (UBUNTU64), 아닐 때 (UBUNTU32)
FEDORA : 86_64가 있을 때 (FEDORA64), 아닐 때 (FEDORA32)
LINUX : 86_64가 있을 때 (LINUX64), 아닐 때 (LINUX32)
} catch (b) {
return "Unknown"
}
| cs |
그런데 브라우저에서 전달해주는 정보가 실제 브라우저 버전이나 정보와 일치하지 않을 때가 꽤 있어서 추가적인 작업이 필요할 때가 많다.
자료 출처(2020-01-13 참조) :
https://jang8584.tistory.com/225
https://kkyunstory.tistory.com/95
http://egloos.zum.com/slog2/v/3845060
https://jang8584.tistory.com/225
댓글
댓글 쓰기