« JavaScriptのスタイルシート(CSS)の操作でハマる | トップページ | 動的なCSS生成 スタイルシートを追加してスタイルルールを追加すると、jQueryの.css()では上書きできない »

2012年10月29日 (月曜日)

ブラウザ判別、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%くらいいるのだよな(当社調べ)。ということで、ここ数日やってる作業のメモ。前のエントリの続きでした。


|

« JavaScriptのスタイルシート(CSS)の操作でハマる | トップページ | 動的なCSS生成 スタイルシートを追加してスタイルルールを追加すると、jQueryの.css()では上書きできない »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/35726/55996206

この記事へのトラックバック一覧です: ブラウザ判別、1行でできるやつとかIEのバージョンもチェックするとか:

« JavaScriptのスタイルシート(CSS)の操作でハマる | トップページ | 動的なCSS生成 スタイルシートを追加してスタイルルールを追加すると、jQueryの.css()では上書きできない »