Browscap.ini ファイルでは、ブラウザのプロパティ定義をいくつでも宣言することができます。また、クライアントのブラウザが列挙されている定義の中にない場合に、デフォルト値を設定することもできます。
各ブラウザ定義では、HTTP の User Agent ヘッダーを指定し、そのヘッダーに関連付けるプロパティや値をそれぞれ指定します。HTTP User Agent ヘッダーの形式の詳細については、http://www.w3.org/ で公開されている HTTP の仕様書を参照してください。
[; comments]
[HTTPUserAgentHeader]
[parent = browserDefinition]
[property1 = value1]
*
[propertyN = valueN]
[Default Browser Capability Settings]
[defaultProperty1 = defaultValue1]
*
[defaultPropertyN = defaultValueN]
comments
セミコロン (;) で始まる行はすべてコメントになります。Browser Capabilities コンポーネントはコメントを無視します。コメントは Browscap.ini ファイルのどこにでも記述できます。
HTTPUserAgentHeader
propertyN で指定されたブラウザプロパティ値ステートメントに関連付ける HTTP User Agent ヘッダーを指定します。Browscap.ini ファイルにはブラウザ定義を複数指定することもできますが、各定義はそれぞれ一意な HTTPUserAgentHeader で始まります。
HTTPUserAgentHeader では、0 文字以上の文字列を示すワイルドカードとしてアスタリスク (*) 文字が使えます。
たとえば、HTTPUserAgentHeader に次の文字列を指定したとします。
[Mozilla/2.0 (compatible; MSIE 3.0;* Windows 95)]
この文字列は次に示す User Agent ヘッダーにすべてマッチします。
[Mozilla/2.0 (compatible; MSIE 3.0; Windows 95)] [Mozilla/2.0 (compatible; MSIE 3.0; AK; Windows 95)] [Mozilla/2.0 (compatible; MSIE 3.0; SK; Windows 95)] [Mozilla/2.0 (compatible; MSIE 3.0; AOL; Windows 95)]
注意 Browser Capabilities コンポーネントは、最初に HTTPUserAgentHeader の値とまったく同じ User Agent ヘッダーを探し、見つからなければワイルドカード文字によってマッチするものを見つけます。
ワイルドカード文字のある複数のブラウザ定義が同じ User Agent ヘッダーにマッチした場合には、Browser Capabilities コンポーネントは最初にマッチしたブラウザ定義のプロパティを返します。
browserDefinition
親ブラウザとして使用するブラウザの HTTP User Agent 文字列を指定する省略可能なパラメータです。現在使用しているブラウザの定義は、親ブラウザの定義の中で宣言されているプロパティ値をすべて継承します。通常、ブラウザのバージョンが新しくなった場合でも、以前のバージョンのプロパティの大部分はそのまま引き継がれるため、ブラウザのバージョン アップの際のプロパティ定義が簡単になります。また、propertyN = valueN の構文を使ってプロパティに明示的に新しい値を設定することで、継承されたプロパティ値を上書きすることもできます。
propertyN
設定するブラウザ プロパティの名前を指定する省略可能なパラメータです。必ず英文字で始まり、255 文字未満で指定します。Browscap.ini ファイル内の各ブラウザ定義には、必要なだけのプロパティ値のステートメントを記述できます。たとえば、アプリケーションでユーザーのブラウザが VBScript をサポートしているかどうかだけを知る必要がある場合は、各ブラウザ定義について 1 つのプロパティ ステートメントだけが必要になります。
設定可能なプロパティの例を次の表に示します。
プロパティ |
説明 |
ActiveXControls |
ブラウザが ActiveX(TM) コントロールをサポートしているかどうかを示します。 |
backgroundsounds |
ブラウザがバックグラウンド サウンドをサポートしているかどうかを示します。 |
beta |
ブラウザがベータ版のソフトウェアかどうかを示します。 |
browser |
ブラウザの名前を示します。 |
cookies |
ブラウザが cookies をサポートしているかどうかを示します。 |
frames |
ブラウザがフレームをサポートしているかどうかを示します。 |
javascript |
ブラウザが JScript(TM) をサポートしているかどうかを示します。 |
platform |
ブラウザが動作するプラットフォームを示します。 |
tables |
ブラウザが表をサポートしているかどうかを示します。 |
vbscript |
ブラウザが VBScript をサポートしているかどうかを示します。 |
version |
ブラウザのバージョン番号を示します。 |
valueN
propertyN の値を指定する省略可能なパラメータです。デフォルトではこの値は文字列です。整数を指定するには値の前にシャープ記号 (#) を付けます。論理値を指定するには TRUE または FALSE を使います。
defaultPropertyN
ブラウザ プロパティの名前を指定する省略可能なパラメータです。このブラウザ プロパティには、ブラウザから送信された HTTP User Agent ヘッダーが定義されているどの HTTPUserAgentHeader の値にもマッチしない場合に、デフォルト値が割り当てられます。
defaultValueN
defaultPropertyN の値を指定する省略可能なパラメータです。デフォルトではこの値は文字列です。整数を指定するには値の前にシャープ記号 (#) を付けます。論理値を指定するには TRUE または FALSE を使います。
次の例では、親タグによって 1 番目のブラウザ定義から 2 番目のブラウザ定義に定義が継承されます。これにより、Microsoft(R) Internet Explorer 3.01 の定義は、Microsoft(R) Internet Explorer 3.0 のすべてのプロパティ定義を継承します (frames=TRUE、 tables=TRUE、および cookies=TRUE)。また、platform=Win95 の行によってプラットフォーム固有の情報が追加され、version=3.01 の行によってバージョン情報が上書きされます。
;;ie 3.0 [IE 3.0] browser=IE Version=3.0 majorver=#3 minorver=#0 frames=TRUE tables=TRUE cookies=TRUE backgroundsounds=TRUE vbscript=TRUE javascript=TRUE ActiveXControls=TRUE Win16=False beta=False AK=False SK=False AOL=False ;;ie 3.01 [Mozilla/2.0 (compatible; MSIE 3.01*; Windows 95)] parent=IE 3.0 version=3.01 minorver=01 platform=Win95 ; Default Browser [Default Browser Capability Settings] browser=Default frames=FALSE
tables=TRUE
cookies=FALSE
backgroundsounds=FALSE
vbscript=FALSE
javascript=FALSE