ブラウザ判定用処理について
ってなわけでブラウザやらの判定用の処理をまとめてみます。
なんてか、丁度いいのがなんか無い感じで忘備録用にほしいなぁと
ブラウザの判定
ってなわけでブラウザの判定となります。
正直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の判定が主流なのかな?なんて思ったりします。