Javascriptでブラウザー判定

乱立するブラウザーエージェントを判定するJSです。phpとかperlでやるほうが安定感増しますが、何せphpを使えないサーバーなんていうのがこの時代にもあったりするので結局JSでやることになりかねない世の中です。IEは特にIE6が巨大企業LAN内に駐屯。おじいさんおばあさんの自宅にはIE7/IE8が健在。Firebug開発者をChromeに奪われたFirefoxもそれななりに健在の世の中なので、何かとブラウザーによって制御が必要です。IE10なんてのもあるのですが、実機がなく検証不能なのでこま今度。
window.navigator.userAgent.toLowerCaseもwindow.navigator.appVersion.toLowerCaseも、いずれも結構な量の値を返してくれるので、indexOf関数で精査してそれぞれの要素を抽出しているだけです。Sampleでいろいろなブラウザーで試してみてください。

<script type="text/javascript">
var userAgent = window.navigator.userAgent.toLowerCase();
var uAgent;

var appVersion = window.navigator.appVersion.toLowerCase();
var aVersion;

if (userAgent.indexOf('opera') != -1) {
uAgent = 'opera';
alert(uAgent);
} else if (userAgent.indexOf('msie') != -1) {
uAgent = 'msie';
alert(uAgent);

if (appVersion.indexOf("msie 6.") != -1) {
aVersion = 'ie6';
alert(aVersion);
} else if (appVersion.indexOf("msie 7.") != -1) {
aVersion = 'ie7';
alert(aVersion);
} else if (appVersion.indexOf("msie 8.") != -1) {
aVersion = 'ie8';
alert(aVersion);
} else if (appVersion.indexOf("msie 9.") != -1) {
aVersion = 'ie9';
alert(aVersion);
} else {
aVersion = 'ie';
alert(aVersion);
}

} else if (userAgent.indexOf('chrome') != -1) {
uAgent = 'chrome';
alert(uAgent);
} else if (userAgent.indexOf('safari') != -1) {
uAgent = 'safari';
alert(uAgent);
} else if (userAgent.indexOf('gecko') != -1) {
uAgent = 'gecko';
alert(uAgent);
} else {
uAgent = 'false';
alert(uAgent);
}
</script>