「$.support」プロパティは、ブラウザの互換性にかかわる情報をハッシュ形式(キー名:値の形式)で返します。ブラウザの対応状況によって処理を分けたいケースで利用するとよいでしょう。
$.supportプロパティは、具体的に以下のような情報を返します。
| キー名 | 概要 |
|---|---|
| boxModel | W3CのCSS Box Modelをサポートするか |
| cssFloat | style.cssFloatプロパティを利用できるか |
| hrefNormalized | hrefプロパティがそのままの値を返すか(正規化処理される場合にはfalse) |
| htmlSerialize | innerHTMLプロパティがシリアライズされた文字列を返すか |
| leadingWhitespace | innerHTMLプロパティが先頭の空白をそのまま返すか |
| noCloneEvent | 要素の複製時に、複製元要素が持つイベントリスナをコピーしないか |
| objectAll | getElementsByTagName('*')メソッドがすべての要素を返すか |
| opacity | opacityプロパティを利用できるか |
| scriptEval | appendChild/createTextNodeメソッドによる要素の追加時に、含まれるスクリプトを実行するか |
| style | getAttribute('style')でstyle属性の値を取得できるか |
| tbody | <table>要素配下の<tbody>要素の省略を許可するか |
| $.supportプロパティの戻り値 | |
具体的な例も見てみましょう。以下は、$.supportプロパティの戻り値をテーブル形式に整形して表示する例です。
<script type="text/javascript">
$(function() {
// supportプロパティで返す情報を順に処理
$.each($.support,
function(key, value) {
// キー|値の形式でテーブル行(<tr>)を生成し、テーブルに追加
$('<tr></tr>').
append('<td>' + key + '</td>').
append('<td>' + value + '</td>').
appendTo('table#target');
});
});
……中略……
<table border="1" id="target">
<tr><th>キー名</th><th>値</th></tr>
</table>
$.supportプロパティはjQuery 1.3で追加されたプロパティです。1.2以前では、ブラウザの状態を示すためのプロパティとしては、以下のようなプロパティが用意されていました。
| プロパティ | 概要 |
|---|---|
| $.browser | ブラウザを識別するための情報(ハッシュ形式)。ハッシュには、ブラウザを表すsafari、opera、msie、mozillaといったキーが含まれ、値としてブール値がセットされている |
| $.browser.version | ブラウザのバージョン番号 |
| $.boxModel | W3CのCSS Box Modelをサポートするか |
| jQuery 1.2以前で利用できるブラウザ情報関連のプロパティ | |
これらのプロパティは、jQuery 1.3以降では非推奨となっていますので、今後は$.supportプロパティを優先して利用するべきです。
Copyright© Digital Advantage Corp. All Rights Reserved.