$.support
$.supportはブラウザの実装状況に応じて処理を振り分けたい時に利用できるオブジェクトです。
jQueryではブラウザの判別には$.browserではなく$.supportの利用が推奨されています。$.browserではブラウザのUA情報を元にブラウザを判別していますが、UAは簡単に変更できる為、確実にブラウザを判定することが出来ないことや、バージョンアップなどの際にUAの記述規則が変更された際にブラウザの誤検出を起こしてしまう為です。(jQuery 1.9.0より$.browserは廃止されました。)
$.supportでは機能の実装状況を検出します。これはfeature detection(フィーチャーディテクション)と呼ばれる手法です。$.supportの各プロパティには機能の実証状況がtrue/falseで格納されており、以下のように処理を分岐します。
if($.support.ajax){
//ブラウザがAjaxに対応している場合の処理
}else{
//ブラウザがAjaxに対応していない場合の処理
}
$.supportで利用できるオブジェクトは次の通りです。
機能 | 説明 |
---|---|
ajax | ajaxに対応しているかどうか検出 |
boxModel | W3C CSS Box Modelでページをレンダリングされているか検出(IE6/7が互換モードの場合にfalse) |
changeBubbles | イベントバブリングに対応しているかどうか検出(IEがfalse) |
cssFloat | CSSのfloatの値を.cssFloatで取得できるか検出 |
checkClone | コピーする際にチェック状態もコピーするか検出 |
checkOn | チェックボックスの値が指定されていない場合のデフォルト値が「on」であるか検出 |
deleteExpando | 拡張した要素の属性をdelete演算子で削除できるか検出 |
hrefNormalized | getAttribute() で hrefを取得する際に補完するか検出 |
htmlSerialize | innerHTMLで値を取得する際にシリアライズされるか検出 |
leadingWhitespace | innerHTMLで値を取得する際に先頭の空白を取り除くか検出 |
noCloneEvent | 要素をコピーする際にイベントハンドラをコピーするか検出 |
opacity | CSSのopacityプロパティが有効か検出 |
scriptEval | appendChild() やcreateTextNode()を利用した際にscriptが評価されるか検出 |
style | getAttribute(“style”)で要素に記述されたstyle属性値を取得できるか検出 |
tbody | tbody要素が存在しないtable要素を許可するか検出 |
$.supportはjQuery 1.3.0で追加されたオブジェクトです
参考URL
jQuery.support | jQuery API Documentation
登録日 : 2013年04月18日 最終更新日 : 2013年4月18日