UAじゃなくブラウザを出し分ける

たいてい、ユーザーエージェントみて調べるのが手っ取り早いし簡単だと思うけど
ユーザーエージェント偽ってても大丈夫なようにブラウザ特有オブジェクトを使って
どのブラウザなのかを判別したい

まず知りたいのはIEなのかNN系なのかってーことですかね

if(document.all) { 
    //IE
} else if(document.layers || document.getElementById) { 
    //NN
} 

で、問題はその後。
FFのバージョンによって出し分けなければいけない場面があったので
1.5系と2.0系を出し分ける方法を調べてみた

if( window.innerWidth && !window.navigator.registerContentHandler) {
    //FireFox 1.5
} else {
    //FIreFox 2.0
}

そして、IE7はクソだけど、それにも対応しなくちゃいけないから、、、
これも判別してやったぜ、ちくしょう

if (typeof document.body.style.maxHeight != "undefined") {
  // IE 7
} else {
  // IE 6
}

おまけ

  1. オペラかどうか
  2. IEかどうか

だったら下記だけでわかるらしいお

window.opera
var isMSIE = /*@cc_on!@*/false;

なんでこれでIEかどうかわかるのかは謎。

Mac?シラネ