IEの自動アップデートでIE6,7など古いブラウザの存在は消えつつありますが、まだクライアントからの要望によってはIE6,7の対応が必要になってしまい、それによってIEへの振り分け処理などが避けられない状況になることはまだ多々あったりします。
CSSではIEの個別のバージョンに対しての処理はCSSハック(推奨されませんが)だったりありますが、jQueryで簡単に判別処理する方法もあり、その記述方法を必要になた時につい忘れてしまうので、ここで自分用メモとして含め紹介してみます。
jQueryでIEを判別して別処理を加える方法
まずはIE全てのバージョンに対して処理を与える方法。
◆IEすべて
if($.browser.msie){
~ 処理 ~
}
jQueryの「$.browser」を使ってIEのUA「msie」を判別して処理します。
次にIE6(以前のバージョン含む)に対して判別して処理を与える方法。
◆IE6
if($.browser.msie && $.browser.version < 7){
~ 処理 ~
}
IEのUA判別に加えてブラウザのバージョンを見て処理します。
そしてIE6,7に対して判別して処理を与える方法。
◆IE6,7
if($.browser.msie && $.browser.version < 8){
~ 処理 ~
}
IE6,7,8に対して判別処理するには
◆IE6,7,8
if($.browser.msie && $.browser.version < 9){
~ 処理 ~
}
といった具合に数値を変化させることによって処理するバージョンを判別させます。
これらはとても簡単で便利に使えるスクリプト処理になりますが「$.browser」と「$.browser.version」はjQuery1.3以降はサポート外になってしまっており、後々使用できなくなる可能性もあります。
新たにブラウザの判別は「jQuery.support」を使っての処理を推奨していますが「$.browser」と「$.browser.version」のようにシンプルに判別させることが出来ず、ちょっと不便な構成になっています。
現時点(jQuery1.7.2)ではまだ「$.browser」も「$.browser.version」も使えているので、jQueryのバージョンアップごとに様子見つつ使用していく必要もありそうです。
IEを判別して別処理が必要になった際に是非。。。
【参考】
・jQuery.browser
jQuery.browser - jQuery 日本語リファレンス
・jQuery.browser.version
jQuery.browser.version - jQuery 日本語リファレンス
・jQuery.support
jQuery.support - jQuery 日本語リファレンス
※$.browserとjQuery.browser、$.browser.versionとjQuery.browser.versionはそれぞれ同じ意味