코드는 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 : 브라우저 버전