ブラウザ判定用処理について
ってなわけでブラウザやらの判定用の処理をまとめてみます。
なんてか、丁度いいのがなんか無い感じで忘備録用にほしいなぁと
ブラウザの判定
ってなわけでブラウザの判定となります。
正直IEの古いバージョンがどんどん死滅していっていますので、あまりこの判定は需要ないのかもしれません
var userAgent = window.navigator.userAgent.toLowerCase();
if(userAgent.indexOf('msie') != -1 || userAgent.indexOf('trident') != -1 ||)
{
// IE判定・IEバージョン判定
if (ver.indexOf("msie 6.") != -1){
console.log('IE6');
}else if (ver.indexOf("msie 7.") != -1){
console.log('IE7');
}else if (ver.indexOf("msie 8.") != -1){
console.log('IE8');
}else if (ver.indexOf("msie 9.") != -1){
console.log('IE9');
}else if (ver.indexOf("msie 10.") != -1){
console.log('IE10');
}else{
console.log('IE11');
}
} else if(userAgent.indexOf('edge') != -1) {
// Edge判定
console.log('Edge');
} else if(userAgent.indexOf('chrome') != -1) {
// chrome判定
console.log('Chrome');
} else if(userAgent.indexOf('safari') != -1) {
// safari判定
console.log('Safari');
} else if(userAgent.indexOf('firefox') != -1) {
// FireFox判定
console.log('FireFox');
} else if(userAgent.indexOf('opera') != -1) {
// opera判定
console.log('Opera');
} else {
// それ以外のブラウザ
console.log('その他のブラウザ');
}
PC/モバイルの判定
PC/モバイルの判定です。
最近はこっちのほうが良く使うんじゃないでしょうか。
OSバージョンもついでに取れるようにしましょうね。
var userAgent = window.navigator.userAgent.toLowerCase();
if(userAgent.indexOf('iphone') != -1) {
// iPhone判定
console.log('iPhone');
// iOSバージョン分岐処理
iosVerSearch();
} else if(userAgent.indexOf('ipad') != -1) {
// iPad判定
console.log('iPad');
// iOSバージョン分岐処理
iosVerSearch();
} else if(userAgent.indexOf('android') != -1) {
// android判定
if(userAgent.indexOf('mobile') != -1) {
// androidスマホ
console.log('androidのスマホ');
// androidバージョン分岐処理
androidVersion(userAgent);
} else {
// androidタブレット
console.log('androidのタブレット');
// androidバージョン分岐処理
androidVersion(userAgent);
}
}
function iosVerSearch(userAgent){
var version = this.userAgent.match(/iphone os ([\d]+)_([\d]+)_([\d]+)/);
if(!version){
version = this.userAgent.match(/iphone os ([\d]+)_([\d]+)/);
}
// ここから分岐処理を書いてもいい。
}
function androidVersion(userAgent) {
if( userAgent.indexOf("Android") > 0 )
{
var version = parseFloat(userAgent.slice(userAgent.indexOf("Android")+8));
return version;
}
}
// ここから分岐処理を書いてもいい。
}
OS判定について
スマホが普及しだしてきた時(android2.xとかiOS4とか5とか)はOSバージョンによって結構違いやバグがあり
わりとこんな感じでわけないと動かないみたいなのが多くありました。
最近は結構落ち着いて安定している感もあったりしますし、サイト仕様も古い端末を除外したりする動きも多く
使うのは pc/spの判定が主流なのかな?なんて思ったりします。