IE8ブラウザ判別
IE8は標準モードと互換表示モードでユーザエージェントが変わってしまうようです。
つまり、
if (navigator.userAgent.indexOf("MSIE 8.") != -1) alert("is IE8"); else alert("isn't IE8");
これでは互換表示モードのときに判定を間違えます。
そこで、IE8から新しくユーザエージェントに含まれることになった"Trident"トークンを見て判定します。
if (navigator.userAgent.indexOf("Trident/4.0") != -1) alert("is IE8"); else alert("isn't IE8");
一応、
if (navigator.userAgent.indexOf("MSIE")!=-1 && navigator.userAgent.indexOf("Trident/4.0")!=-1) alert("is IE8"); else alert("isn't IE8");
IE判定も入れといた方がいいかもしれません
「Trident/4.0」がいいのか、「Trident」だけのがいいのか、「Trident/4.」としておくのがいいのか、
今現在はどれでも同じだろうけど、後々のことを考えるとどうしておくのがベターなんでしょうか・・
参考:
2009/01/09 - Internet Explorer 8 の User-Agent 文字列 (更新版)
第 13 回 Admintech.jp 勉強会: Days on the Moon