|
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");
});
|