jQuery.support


version 1.3以降

解説

ブラウザがサポートする機能の情報を提供する、プロパティのコレクションです。

ブラウザの機能に依存したコードを実装する場合、ブラウザの種別に基づくよりも、ブラウザがサポートする機能に基づいて実装を変える方が、より良い方法であると言えます。

jQueryはブラウザがサポートする機能を判別し、jQuery.support オブジェクトのプロパティとして提供します。

以下のWebサイトでは、ブラウザがサポートする機能について詳しく説明されています。

プロパティ一覧

プロパティ 説明
boxModel Boolean ブラウザが、W3C CSS Box Model に基づいてページをレンダリングしている場合はtrueを返します。
(IE6もしくは7のQuirksモードでは、falseを返します。)
このプロパティは、DOM要素の読み込みが終了し、準備が完了するまではnullを返します。
cssFloat Boolean CSSのFloatの値をcssFloatプロパティで取得できる場合にはtrueを返します。
(IEの一部のバージョンでは、styleFloatで取得するため、falseを返す場合があります。)
hrefNormalized Boolean getAttribute()メソッドを使用して href 属性値を取得する場合、href 属性値をそのまま返す場合はtrueを返します。
(IEの一部のバージョンでは、hrefの値を完全修飾するため、falseを返す場合があります。)
htmlSerialize Boolean innerHTMLを使用して値を取得する場合、シリアライズされた値を返す場合はtrueを返します。
(IEではfalseを返します。)
leadingWhitespace Boolean innerHTMLを使用して値を取得する場合、先頭の空白をそのまま返す場合はtrueを返します。
(IE6-8ではfalseを返します。)
noCloneEvent Boolean 要素がコピーされる場合に、要素が持つイベントハンドラをコピーしない場合はtrueを返します。
(IEではfalseを返します。)
objectAll Boolean getElementsByTagName('*')メソッドを呼び出した場合に、全ての子孫要素を返す場合はtrueを返します。
(IE7/8ではfalseを返します。)
opacity Boolean opacityプロパティで透明度を指定できる場合はtrueを返します。
(IEでは、alpha filtersで指定するためfalseを返します。)
scriptEval Boolean appendChild()createTextNode()といった標準的なメソッドを使用して要素を追加した場合に、インラインスクリプトを自動的に評価して実行する場合はtrueを返します。
(IEではfalseを返します。IEでは .text を使用すれば、インラインスクリプトを自動的に評価して実行します。)
style Boolean 要素のstyle属性を、getAttribute('style')で取得できる場合はtrueを返します。
(IEではfalseを返します。IEでは .cssText を使用して、要素のstyle属性を取得します。)
tbody Boolean <tbody>要素が存在しない<table>要素を許可する場合はtrueを返します。
(IEではfalseを返します。IEでは <tbody>要素が存在しない<table>要素には、自動的に<tbody>要素を追加します。)
checkOn Boolean チェックボックスの値が指定されていない場合、デフォルト値が"on"である場合はtrueを返します。
(WebKitの場合、デフォルト値は""です。)
checkClone Boolean cloneNode()を使用して要素を複製する場合、要素のチェック状態も含めコピーする場合はtrueを返します。
(WebKitの場合はチェック状態がコピーされないため、falseを返します。)
deleteExpando Boolean 拡張した要素の属性を、delete演算子で削除できる場合はtrueを返します。
(IEではfalseを返します。)

jQuery.supportが持つプロパティの値を、現在表示しているブラウザで表示します。

$.each($.support, function(key, value) {
    $("<tr/>")
        .append("<td>" + key + "</td>")
        .append("<td>" + value + "</td>")
        .appendTo("#test_result table");
});