ユーザーエージェントや、ブラウザの判別(特にIE)をしたいときに使うスクリプトです。
IEの7/8だけでどうしても分岐せざるを得ない、って場合とかに便利です。
とりあえずこれ書いとけばOKって感じで使ってます。
※ 2014/01/29 IE11用の分岐を追記しました。
checkUA.js
// ua判定
var uaObj = {
uaDevice: 'device-pc', // PC or モバイル
uaBrouser: false // ブラウザの種類
};
uaObj.checkUA = function(){
var userAgent = navigator.userAgent.toLowerCase();
var appVersion = navigator.appVersion.toLowerCase();
// デバイス判定
if (userAgent.indexOf('iphone') > 0 || userAgent.indexOf('ipod') > 0 || userAgent.indexOf('android') > 0) {
uaObj.uaDevice = 'device-mobile';
}
// ブラウザ判定
if (userAgent.indexOf('opera') != -1) {
uaObj.uaBrouser = 'opera';
} else if (userAgent.indexOf("msie") != -1) {
if (appVersion.indexOf("msie 6.") != -1) {
uaObj.uaBrouser = 'ie6';
} else if (appVersion.indexOf("msie 7.") != -1) {
uaObj.uaBrouser = 'ie7';
} else if (appVersion.indexOf("msie 8.") != -1) {
uaObj.uaBrouser = 'ie8';
} else if (appVersion.indexOf("msie 9.") != -1) {
uaObj.uaBrouser = 'ie9';
} else {
uaObj.uaBrouser = 'ie';
}
} else if (userAgent.indexOf('trident') != -1) {
uaObj.uaBrouser = 'ie11';
} else if (userAgent.indexOf('chrome') != -1) {
uaObj.uaBrouser = 'chrome';
} else if (userAgent.indexOf('safari') != -1) {
uaObj.uaBrouser = 'safari';
} else if (userAgent.indexOf('firefox') != -1) {
uaObj.uaBrouser = 'firefox';
} else {
uaObj.uaBrouser = false;
}
};
※ この場合、iPadをモバイルとは判定していません。必要に応じて追加したりしてます。
(追記)
Retinaかどうかを取得する場合は下記。
checkUA.js
// retinaかどうかをチェック
uaObj.checkDisplay = function(){
uaObj.pixelRatio = window.devicePixelRatio;
};
// uaObj.pixelRatio > 2 の時はretina、といった分岐を書く