ブラウザ判別について

ブラウザ判別を行う方法としては、navigatorオブジェクトの各プロパティを取得して行う方法と、 そのスクリプトで使うオブジェクトやプロパティがあるかどうかを検出することによって、 実装していないブラウザでエラーを出さないように配慮する方法とがあります。 最近ではオブジェクトを検出する方法をとることが多くなりましたが、 比較的古めの文書ではnavigatorオブジェクトを使う方法が紹介されていることが多いようです。

ブラウザがまだそれほど多く出現していなく、 ヴァージョンもそれほど更新されていない時代にはnavigatorオブジェクトを使う方法もかなり有効であったとは思います。 しかしながら、現在のように新しいブラウザがどんどん出現し、各ブラウザの互換性も進んでいる状況があり、 なおかつDOM標準の勧告に従ったブラウザが多くなっている状況では、実際に使うオブジェクトを検出して、 そのオブジェクトを実装していないブラウザでは動作させないように配慮する方法がお勧めであるといえます。 このサイトでもオブジェクト検出により、動作させるブラウザを判別しています。

なお、読み込ませる外部CSSをブラウザによって変えたい場合などには、navigatorオブジェクトを使う方法もありだと思います。 ただし、JavaScriptを有効にしていないとCSSを読み込まないという問題が生ずるので、 CSSのバグを利用する方法の法がある意味実用的といえるかもしれません。 バグを利用するのは違和感もありますけどね。

関連リンク