【jQuery】$.supportによるブラウザの判別は、現時点では無理らしい

最終更新日 2011年11月13日


jQuery 1.3 以降では、$.browserは非推奨となったそうです。
代わりに$.supportの使用が勧められています。
で、どうすれば各ブラウザを判別できるのかを調べてみます。
下は $.support の各プロパティの真偽値がブラウザによって
どう変わるのかを一覧表にまとめたものです。


【検証用ページ】
http://www.usamimi.info/~sutara/sample/jq_support.html



プロパティ名 Chrome15.0 Safari5.1.1 Firefox8.0 Opera11.52 IE9
ajax true true true true true
boxModel true true true true true
changeBubbles true true true true true
checkClone true true true true true
checkOn true false true true true
cors true true true false false
cssFloat true true true true true
hrefNormalized true true true true true
leadingWhitespace true true true true true
noCloneChecked true true true true false
noCloneEvent true true true true true
opacity true true true true true
optDisabled true true true true true
optDisabled undefined undefined undefined undefined undefined
style true true true true true
submitBubbles true true true true true
tbody true true true true true
※各プロパティは下記を参照。
http://api.jquery.com/jQuery.support/


…以上の結果から、下記のようにすれば4種類に分けられると判明しました。


if(!$.support.checkOn){
//Safari5.1.1
}else if($.support.noCloneChecked){
//IE9
}else if(!$.support.cors){
//Opera11.52
}else{
//Firefox8.0, Chrome15.0
}

しかし、下記のページで、jQueryを使わずにブラウザごとに判別する方法が紹介されています。


『JSでのUA条件分岐便利スニペット
http://w3g.jp/blog/tools/js_browser_sniffing