728x90
반응형
코드는 jQuery이다.
browser = (function(){
var a = navigator.userAgent.toLowerCase();
var b,v;
if(a.indexOf("safari/") > -1) {
b = "safari";
var s = a.indexOf("version/");
var l = a.indexOf(" ", s);
v = a.substring(s+8, l);
}
if(a.indexOf("chrome/") > -1) {
b = "chrome";
var ver = /[ \/]([\w.]+)/.exec(a)||[];
v = ver[1];
}
if(a.indexOf("firefox/") > -1) {
b = "firefox";
var ver = /(?:.*? rv:([\w.]+)|)/.exec(a)||[];
v = ver[1];
}
if(a.indexOf("opera/") > -1) {
b = "opera";
var ver = /(?:.*version|)[ \/]([\w.]+)/.exec(a)||[];
v = ver[1];
}
if((a.indexOf("msie") > -1) || (a.indexOf(".net") > -1)) {
b = "msie";
var ver = /(?:.*? rv:([\w.]+))?/.exec(a)||[];
if(ver[1])
v = ver[1];
else{
var s = a.indexOf("msie");
var l = a.indexOf(".", s);
v = a.substring(s+4, l);
}
}
return { name: b || "", version: v || 0};
}());
jquery-1.10.x부터 $.browser를 사용 할 수 없게 됐습니다. 왜 뺐는지는 모르겠지만 아마도 IE의 잦은 변덕 때문이 아닌가 추측 됩니다. userAgent 값이 IE11부터 느닷없이 바뀌어 버립니다. 버전 정보에 msie가 있으면 IE인가 보다 했는데 msie 문자가 빠져서 IE를 분별 할 수 있는 마땅한 단어가 없습니다. 그래서 mozilla로 분류가 되는데 암튼 그런 것들을 다 감안해서 조금은 무식한 방법으로 만들어 봤습니다.
다른 건 문제가 안 되는데 IE는 .net 버전이 userAgent에 포함 되어 있어서 IE11 부터는 .net을 포함하는지로 구분했습니다.
browser.name : 브라우저 이름
browser.version : 브라우저 버전
728x90
반응형
'프로그래밍 > CSS & JS & Jquery' 카테고리의 다른 글
jQuery, 초간단하게 ajax로 프로세스 비동기 요청(서버 호출)하고 싶을 때. $.post() (0) | 2019.09.17 |
---|---|
ajax로 form 내용을 비동기로 전송하기 (0) | 2019.09.17 |
모바일에서 이미지 크기를 div, span, td 등에 폭 맞추기 (0) | 2019.09.17 |