自分用のメモ。
試していないのもあるので、正しいかどうかは未検証です。
var cmn = [];
// ユーザーエージェントの取得
cmn.ua = window.navigator.userAgent.toLowerCase();
// 各ブラウザ(PC)
cmn.ua_ie7 = (cmn.ua.indexOf('ie 7.') > 0) ? true : false;
cmn.ua_ie8 = (cmn.ua.indexOf('ie 8.') > 0) ? true : false;
cmn.ua_ie9 = (cmn.ua.indexOf('ie 9.') > 0) ? true : false;
cmn.ua_ie10 = (cmn.ua.indexOf('ie 10.') > 0) ? true : false;
cmn.ua_chrome = (cmn.ua.indexOf('chrome') > 0 && cmn.ua.indexOf('safari') > 0) ? true : false;
cmn.ua_safari = (cmn.ua.indexOf('chrome') === -1 && cmn.ua.indexOf('safari') > 0) ? true : false;
cmn.ua_firefox = (cmn.ua.indexOf('firefox') > 0) ? true : false;
cmn.ua_opera = (cmn.ua.indexOf('opera') > 0) ? true : false;
// IEバージョン判別
cmn.ua_ie = (cmn.ua_ie7 === true || cmn.ua_ie8 === true || cmn.ua_ie9 === true && cmn.ua_ie10 === true) ? true : false;
cmn.ua_ie8lte = (cmn.ua_ie7 === true || cmn.ua_ie8 === true) ? true : false;
cmn.ua_ie9lte = (cmn.ua_ie7 === true || cmn.ua_ie8 === true || cmn.ua_ie9 === true) ? true : false;
// ブラウザエンジン
cmn.ua_webkit = (cmn.ua.indexOf('webkit/') > 0) ? true : false; // Safari, Chrome系
cmn.ua_gecko = (cmn.ua.indexOf('gecko/') > 0) ? true : false; // Firefox系
cmn.ua_presto = (cmn.ua.indexOf('Presto/') > 0) ? true : false; // Opera系
// 各ブラウザ(TB)
cmn.ua_iPad = (cmn.ua.indexOf('iPad') > 0) ? true : false;
cmn.ua_AndroidTab = ((cmn.ua.indexOf('Android') > 0 && cmn.ua.indexOf('Mobile') === -1) || cmn.ua.indexOf('A1_07') > 0 || cmn.ua.indexOf('SC-01C') > 0) ? true : false; // A1_07とSC-01CはタブレットにもかかわらずMobileのUAが付与される(2013/02現在)
cmn.ua_TAB = (cmn.ua_iPad === true || cmn.ua_AndroidTab === true) ? true : false;
// 各ブラウザ(SP)
cmn.ua_iPhone = (cmn.ua.indexOf('iPhone') > 0) ? true : false;
cmn.ua_iPod = (cmn.ua.indexOf('iPod') > 0) ? true : false;
cmn.ua.Android = (cmn.ua.indexOf('Android') > 0 && cmn.ua.indexOf('Mobile') > 0) ? true : false;
cmn.ua_WinPhone = (cmn.ua.indexOf('Windows Phone') > 0) ? true : false;
cmn.ua_Blackberry = (cmn.ua.indexOf('Brackberry') > 0) ? true : false;
cmn.ua_SP = (cmn.ua_iPhone === true || cmn.ua_iPod === true || cmn.ua_Andorid === true || cmn.ua_WinPhone === true || cmn.ua_Blackberry === true) ? true : false;