JavaScriptでのUserAgent判別を行う案件があるので、
先にちょろっと判別式だけ書いてみようと思う。
基本的には既存のブラウザしか判別できないので、
後々追加していく必要があったり。
function getUA(){ var ua = navigator.userAgent; var agent = ""; if(ua.match(/msie/i)){ if(ua.match(/msie 9/i)) agent = "IE9"; else if(ua.match(/msie 8/i)) agent = "IE8"; else if(ua.match(/msie 7/i)) agent = "IE7"; } else if(ua.match(/firefox/i)) agent = "firefox"; else if(ua.match(/opera/i)) agent = "opera"; else if(ua.match(/netscape/i)) agent = "netscape"; else if(ua.match(/safari/i)){ if(ua.match(/chrome/i)) agent = "chrome"; else agent = "safari"; } else if(ua.match(/ipad/i)) agent = "iPad"; else if(ua.match(/iphone/i)) agent = "iPhone"; else if(ua.match(/ipod/i)) agent = "iPod"; else agent = "unrecognized"; return agent; }
ということでこんな感じで書けばエージェント判別が出来る。
ただ上でも述べてるけど微妙なところとしては、ブラウザが追加された場合。
といってもIEの場合は7~9で仕様が違うので場合分けしているけど、
他のものについてはあまり意味がないのでそうしていなかったり。
----------追記(2012/03/23)----------
上記のものにAndroidの判別を加えた。
AndroidではiPadみたいにタブレットは別物にはならないので、
それを判別するためにさらにMobileかどうかで判別する必要がある。
つまりAndroidでかつMobileであるならばAndroidタブレットっていう感じ。
function getUA(){ var ua = navigator.userAgent; var agent = ""; if(ua.match(/msie/i)){ if(ua.match(/msie 9/i)) agent = "IE9"; else if(ua.match(/msie 8/i)) agent = "IE8"; else if(ua.match(/msie 7/i)) agent = "IE7"; } else if(ua.match(/ipad/i)) agent = "iPad"; else if(ua.match(/iphone/i)) agent = "iPhone"; else if(ua.match(/ipod/i)) agent = "iPod"; else if(ua.match(/android/i)){ if(ua.match(/mobile/i)) agent = "Android"; else agent = "AndroidTab"; } else if(ua.match(/firefox/i)) agent = "firefox"; else if(ua.match(/opera/i)) agent = "opera"; else if(ua.match(/netscape/i)) agent = "netscape"; else if(ua.match(/safari/i)){ if(ua.match(/chrome/i)) agent = "chrome"; else agent = "safari"; } else agent = "unrecognized"; return agent; }
0 件のコメント:
コメントを投稿