ブラウザを判別する必要にかられ、いろいろ調べる。jQueryならカンタンなんだけど、ここはそれを使わない方法で。
まず見つかったのがこれ。ほんとに1行でIEかどうかがわかる。すげー。2007年にこんな方法が編み出されてたのね。
JavaScriptでIEかどうかをたったの1行で判別する方法:phpspot開発日誌
具体的にはこんな感じ。
var isMSIE = /*@cc_on!@*/false;
JScriptの条件付きコンパイルってのを使った方法だそうだ。いかす。
しかし、問題発生。JavaScriptを圧縮するのに使っているMicrosoft AJAX Minifierを通すとおかしくなる。というのも「/* */」で挟まれていることから、この部分を注釈として判断、消してしまうということから。圧縮してからこの部分を書きなおすという方法がとれるんだけど、それもめんどくさい。
ということで、別の方法を。で、見つけたのがこれ。
IEのバージョンを簡単に判断できるJavaScript | Web活メモ帳
バージョンの判別もしなくてはならなかったので、これには助けられた。いま、作ってるやつがIE7でどうもおかしくなるので、同じIEでもIE7では別の処理を加える必要があったので。判別後の参照も楽だったので、これでいくことに。
DOM周りの操作がIE7とそれ以降でなんか違うっぽいので、それをなんとかするため。もっとすっきりとさせられるような気もするのだけど、IEのF12で出てくる開発ツールで得られる情報がFirefoxのFireBugと比べて少ないので調べるのが面倒。ブラウザ依存の動作にはいろいろ困らせられる。どんどん無駄な処理が増えてる気がしないでもない。IE7を切り捨ててもいい時期なのかもしれないけど、まだ2.5%くらいいるのだよな(当社調べ)。ということで、ここ数日やってる作業のメモ。前のエントリの続きでした。
コメント