JavaScript でブラウザを判定する方法



ブラウザによって画面の表示が変わることがあるので、ブラウザごとに処理を分ける方法を調べました。


*UserAgent を使う

下記コードで判定することができました。
IEとEdgeの判定は注意が必要で、Chromeより先に判定を行う必要があります。(IE と Edge については、userAgentの文字列の中にchromeも含まれているからです)
また、IE11からuserAgentの文字列が変更されてtridentになったので、判定条件に追加してあります。

var ua = window.navigator.userAgent.toLowerCase()

if (ua.indexOf('msie') >= 0 || ua.indexOf('trident') >= 0) {
  // IEの処理
}
if (ua.indexOf('edge') >= 0) {
  // Edgeの処理
}
if (ua.indexOf('safari') >= 0) {
  // safariの処理
}
if (ua.indexOf('chrome') >= 0) {
  // Chromeの処理
}
if (ua.indexOf('firefox') >= 0) {
  // Firefoxの処理
}

*所感

画面ごとにこの判定をいちいち書くのは面倒なので共通化したほうがいいかもしれないです。userAgent 以外の判定方法で便利なライブラリなどがあったらそちらを使いたい気持ちです。

Previous
Next Post »

人気の投稿