ブラウザ判別、1行でできるやつとかIEのバージョンもチェックするとか

 ブラウザを判別する必要にかられ、いろいろ調べる。jQueryならカンタンなんだけど、ここはそれを使わない方法で。
 まず見つかったのがこれ。ほんとに1行でIEかどうかがわかる。すげー。2007年にこんな方法が編み出されてたのね。
 JavaScriptでIEかどうかをたったの1行で判別する方法:phpspot開発日誌はてなブックマーク - JavaScriptでIEかどうかをたったの1行で判別する方法:phpspot開発日誌
 具体的にはこんな感じ。

var isMSIE = /*@cc_on!@*/false;

 JScriptの条件付きコンパイルってのを使った方法だそうだ。いかす。
 しかし、問題発生。JavaScriptを圧縮するのに使っているMicrosoft AJAX Minifierを通すとおかしくなる。というのも「/* */」で挟まれていることから、この部分を注釈として判断、消してしまうということから。圧縮してからこの部分を書きなおすという方法がとれるんだけど、それもめんどくさい。
 ということで、別の方法を。で、見つけたのがこれ。
 IEのバージョンを簡単に判断できるJavaScript | Web活メモ帳はてなブックマーク - IEのバージョンを簡単に判断できるJavaScript | Web活メモ帳
 バージョンの判別もしなくてはならなかったので、これには助けられた。いま、作ってるやつがIE7でどうもおかしくなるので、同じIEでもIE7では別の処理を加える必要があったので。判別後の参照も楽だったので、これでいくことに。
3ステップでしっかり学ぶ JavaScript入門 (今すぐ使えるかんたんプラス) DOM周りの操作がIE7とそれ以降でなんか違うっぽいので、それをなんとかするため。もっとすっきりとさせられるような気もするのだけど、IEのF12で出てくる開発ツールで得られる情報がFirefoxのFireBugと比べて少ないので調べるのが面倒。ブラウザ依存の動作にはいろいろ困らせられる。どんどん無駄な処理が増えてる気がしないでもない。IE7を切り捨ててもいい時期なのかもしれないけど、まだ2.5%くらいいるのだよな(当社調べ)。ということで、ここ数日やってる作業のメモ。前のエントリの続きでした。

コメント