navigatorオブジェクトによるブラウザ識別のまとめ

1.ブラウザ名取得関数作成

navigator.appNameを参照したブラウザ名を取得する関数を作成します。
引数: なし
戻り値: Internet Explorerのときは「IE」を、Netscape のときは「NN」を返します。
ブラウザ名が取得できないときは空文字列を返します。
function getAppName() {
  if (navigator.appName.indexOf("Microsoft") > -1) return "IE";
  if (navigator.appName.indexOf("Netscape") > -1)  return "NN";
  return "";
}
//関数使用例
document.write("お使いのブラウザは", getAppName(), "です。");
実行結果:


2.ブラウザバージョン取得関数作成

navigator.appVersionを参照したブラウザのバージョン番号の取得関数を作成します。
引数: なし
戻り値: Internet Explorer、Netscape いずれの場合でもそのバージョン番号を返します。
バージョン番号が取得できないときは0を返します。
function getAppVersion() {
  var num = 0;
  if (getAppName() == "IE") {
    num = navigator.userAgent.indexOf("MSIE ");
    if (num < 0) {
      num = navigator.appVersion.charAt(0);
      if (num == 2 || num == 3) return 3;
    }
    return eval(navigator.userAgent.substr(num + 5, 4));
  }
  if (getAppName() == "NN") {
    num = navigator.appVersion.charAt(0);
    if (num >= 5) {
      num = navigator.userAgent.indexOf("Netscape");
      num = navigator.userAgent.indexOf("/", num);
      return eval(navigator.userAgent.substr(num + 1, 4));
    }
    if (num >= 2) return num;
  }
  return 0;
}
//関数使用例
document.write("お使いのブラウザのバージョンは", getAppVersion(), "です。");
実行結果:


3.プラットフォーム取得関数作成

navigator.appVersionを参照したプラットフォームの取得関数を作成します。
引数: なし
戻り値: Windows のときは「Win」を、MacOS のときは「Mac」を、PC Unix のときは「UNIX」を返します。
プラットフォームが取得できないときは空文字列を返します。
function getPlatform() {
  if (navigator.userAgent.indexOf("Win") > -1) return "Win";
  if (navigator.userAgent.indexOf("Mac") > -1) return "Mac";
  if (navigator.userAgent.indexOf("X11") > -1) return "UNIX";
  return "";
}
//関数使用例
document.write("お使いのプラットフォームは ", getPlatform(), "です。");
実行結果:


4.関数の使用例

IE4.0以上であることのチェック例
if (getAppName() == "IE" && getAppVersion() >= 4.0)
  document.write("お使いのブラウザはIE4.0以上です。");
else
  document.write("目的のブラウザではありません。");
実行結果:


NN7.0であることのチェック例
if (getAppName() == "NN" && getAppVersion() == 7.0)
  document.write("お使いのブラウザはNN7.0です。");
else
  document.write("目的のブラウザではありません。");
実行結果:


IE5.5以上、またはNN6以上であることのチェック例
if (getAppName() == "IE" && getAppVersion() >= 5.5 || getAppName() == "NN" && getAppVersion() >= 6)
  document.write("お使いのブラウザはIE5.5以上、またはNN6以上です。");
else
  document.write("目的のブラウザではありません。");
実行結果:


Macで稼動するIE4.5以上のブラウザであることのチェック例
if (getAppName() == "IE" && getAppVersion() >= 4.5 && getPlatform() == "Mac")
  document.write("お使いのブラウザはMac用のIE4.5以上以上です。");
else
  document.write("目的のブラウザではありません。");
実行結果:


メイン画面に戻る