|
元素
|
说明
|
| adapter | 指定 ASP.NET Web 服务器控件与用于在当前浏览器中呈现该控件的适配器之间的映射。例如,Nokia.browser 文件中包含的 NokiaMobileBrowserRainbow 浏览器的以下定义指定使用 MenuAdapter 控件适配器类来针对浏览器改编 Menu 服务器控件:
<controlAdapters markupTextWriterType="System.Web.UI.XhtmlTextWriter" >
<adapter
controlType="System.Web.UI.WebControls.Menu"
adapterType="System.Web.UI.WebControls.Adapters.MenuAdapter">
</adapter>
</controlAdapters>
下表描述 adapter 元素中包含的必需属性。
|
属性
|
说明
| | adapterType | 必需的 String 属性。 指定类的名称,该类用于更改针对浏览器改编控件的方式。 | | controlType | 必需的 String 属性。 指定要映射到适配器的控件的名称。 |
adapter 元素不包含子元素。 |
| browser | 定义一个浏览器定义。 下表描述 browser 元素可以包含的属性。 注意 |
|---|
| 不要更改 ASP.NET 随附的浏览器定义文件,因为 Service Pack 可能会更新这些文件,从而改写您所做的更改。相反,您应该创建新的 .browser 文件,并在新的浏览器定义中使用 parentID 属性来继承设置,或者使用 refID 属性向现有的浏览器定义添加功能。 |
浏览器定义中必须定义 refID 属性,或者同时定义 id 和 parentID 属性。
|
属性
|
说明
| | id | String 属性,如果使用了 parentID 属性,则此属性是必需的。 指定要定义的浏览器的唯一名称。 | | parentID | String 属性,如果使用了 id 属性,则此属性是必需的。 指定要继承其设置的父浏览器定义的唯一名称。可以在当前浏览器定义中改写这些设置。父浏览器定义无需位于同一个浏览器定义文件中,但它必须在同一个应用程序或 %SystemRoot%\Microsoft.NET\Framework\version\CONFIG\Browsers 目录中定义。例如,WebTV 浏览器的以下定义在 WebTV.browser 文件中定义,而 IE2 父浏览器的定义在同一目录的 IE.browser 文件中定义。 <browser id="
WebTV
" parentID="
IE2
"> | | refID | String 属性,如果使用了 id 和 parentID 属性,则不能使用此属性。 指定现有的浏览器定义标识符。使用 refID 属性将新功能与现有的浏览器定义相关联。您可以将多个浏览器节点配置为引用相同的 refID。如果指定了 refID 属性,则 browser 元素不能包含 identification 子元素。例如,下面的示例定义向 IE.browser 文件中包含的现有 IE 浏览器定义添加新功能。
<browser refID="IE">
<capabilities>
<capability name="UseRichTextBox" value="true" />
</capabilities>
<controlAdapters>
<adapter controlType="System.Web.UI.Calendar"
adapterType="ExampleAdapters.ExampleIECalendarAdapter"
/>
</controlAdapters>
</browser>
|
browser 元素可以不包含下列任何子元素,也可以包含下列子元素中的一个: -
capabilities -
capture -
controlAdapters -
identification -
sampleHeaders |
| browsers | 表示 .browser 文件的必需的根元素。 |
| capabilities | 定义要为当前的浏览器定义设置的功能值。若要查看强类型浏览器功能的列表,请参见 HttpCapabilitiesBase 类的属性。这些属性中的大多数在浏览器定义文件中使用 Camel 大小写格式。您也可以添加自己的功能值。 capabilities 元素不包含任何属性。 capabilities 元素可以不包含下面的子元素,也可以包含多个该子元素: |
| capability(capabilities 的子元素) | 定义要为当前的浏览器定义设置的一个功能值。例如,IE.browser 文件中为 IE 浏览器定义定义了下列功能:此示例定义从 Mozilla.browser 文件中的 Mozilla 浏览器定义继承其他功能。在后面跟有大括号的货币符号 (${}) 内包含文本的值将被替换为从 identification 元素 "^Mozilla[^(]*\([C|c]ompatible;\s*MSIE (?'version'(?'major'\d+)(?'minor'\.\d+)(?'letters'\w*))(?'extra'[^)]*)" 的 userAgent 子元素中的匹配表达式中捕获的值。
<capabilities>
<capability name="browser" value="IE" />
<capability name="extra" value="${extra}" />
<capability name="isColor" value="true" />
<capability name="letters" value="${letters}" />
<capability name="majorversion" value="${major}" />
<capability name="minorversion" value="${minor}" />
<capability name="screenBitDepth" value="8" />
<capability name="type" value="IE${major}" />
<capability name="version" value="${version}" />
</capabilities>
capability 元素包含下列必需的属性。
|
属性
|
说明
| | name | 必需的 String 属性。 指定功能的名称。若要查看强类型浏览器功能的列表,请参见 HttpCapabilitiesBase 类的属性。这些属性中的大多数在浏览器定义文件中使用 Camel 大小写格式,例如,使用 canSendMail 而不是 CanSendMail。您也可以添加自己的功能值。 | | value | 必需的 String 属性。 指定功能的值。HttpCapabilitiesBase 类的属性中列出了每个强类型浏览器功能的可能值。value 属性可以在“${}”内包含捕获的变量。 |
capability 元素不包含子元素。 |
| capability(identification 或 capture 的子元素) | 指定针对正则表达式匹配父浏览器类中的功能值。例如,IE.browser 文件中包含的 IE5to9 浏览器的以下定义使用 capability 元素来指定:IE 父定义的 majorversion 功能设置必须匹配包含的正则表达式,此浏览器定义才能与客户端浏览器匹配。此示例浏览器定义包括 capability 元素,这些元素添加到父定义中的元素,或者改写父定义中的元素。
<browser id="IE5to9" parentID="IE">
<identification>
<capability name="majorversion" match="^[5-9]" />
</identification>
<!-- Capability elements. -->
</browser>
下表描述 capability元素包含的属性。必须定义 match 或 nonMatch 属性,但不能同时定义两者。
|
属性
|
说明
| | match | String 属性,不能与 nonMatch 属性在同一个元素中使用。 指定正则表达式,父功能设置必须匹配此表达式才能满足该标识。有关格式化正则表达式的信息,请参见 .NET Framework 正则表达式。 | | name | 必需的 String 属性。 指定父功能的名称。 | | nonMatch | String 属性,不能与 match 属性在同一个元素中使用。capture 元素的 capability 子元素中不使用此属性。 指定正则表达式,父功能设置不匹配此表达式时才能满足该标识。 |
capability 元素不包含子元素。 |
| capture | 定义以下信息:在捕获有关浏览器的信息时,使用哪些额外的 header、userAgent 或 capability 元素。这在尝试检测当发布 .NET Framework 2.0 时不可用的新浏览器时非常有用。为了捕获值,浏览器定义可以在任何 identification 元素的 match 属性中包括正则表达式捕获。例如,IE.browser 文件中定义的以下 userAgent 元素从用户代理请求标头中捕获屏幕的高度(以像素为单位)。
<capture>
<userAgent match="PalmSource; Blazer 3\.0\)\s\d+;(?'screenPixelsHeight'\d+)x(?'screenPixelsWidth'\d+)$" />
</capture>
浏览器定义可能还需要通过扫描并非用于区分浏览器类的请求标头来捕获其他信息。例如,下面的 capture 元素捕获 OpenWave 移动电话的软键的数目。当您在基于 Windows Mobile 的 SmartPhone 上按硬件按钮时,软键会显示相应的菜单和命令:
<capture>
<header name="HTTP_X_UP_DEVCAP_NUMSOFTKEYS"
match="(?'softkeys'\d+)" />
</capture>
capture 元素不包含任何属性。 capture 元素可以不包含下列任何子元素,也可以包含其中的多个子元素: -
header -
userAgent -
capability |
| controlAdapters | 定义用于改编浏览器上服务器控件的控件适配器。 下表描述 controlAdapters 元素包含的属性。 controlAdapters 元素可以不包含下面的子元素,也可以包含多个该子元素: |
| defaultBrowser | 在 Default.browser 文件中定义默认的浏览器功能。Default 浏览器定义不匹配任何特定的物理浏览器,而是由其他定义用于继承设置。例如,Default.browser 文件中包含下面的 Default 浏览器定义:
<defaultBrowser id="Default">
<capabilities>
<capability name="ecmascriptversion" value="0.0" />
<capability name="javascript" value="false" />
<capability name="jscriptversion" value="0.0" />
</capabilities>
</defaultBrowser>
Default 浏览器定义供许多其他浏览器定义继承。例如,Panasonic.browser 文件中包含 Panasonic 浏览器的以下定义。 <browser id="
Panasonic
" parentID="
Default
"> 下表描述 defaultBrowser 元素包含的属性。
|
属性
|
说明
| | id | 必需的 String 属性。 指定浏览器的唯一名称。 |
defaultBrowser 元素可以与 browser 元素一样包含相同的子元素。 |
| gateway | 指定一个网关定义。某些移动浏览器通过网关连接到 Web 服务器,而网关可以添加它自己的功能。多个网关元素可以引用同一个 refID 属性。 gateway 元素可以与 browser 元素一样包含相同的属性和子元素。例如,IE3AK 网关的以下定义来自 IE.browser 文件。
<gateway id="IE3AK" parentID="IE3">
<identification>
<capability name="extra" match="; AK;" />
</identification>
<capture>
</capture>
<capabilities>
<capability name="ak" value="true" />
</capabilities>
</gateway>
|
| header(identification 或 capture 的子元素) | 指定一个表达式,将根据该表达式来匹配或捕获请求中的特定 HTTP 标头。例如,Default.browser 文件中包含的 Wml 浏览器的以下定义通过将 Accept 标头与两个正则表达式进行比较来标识匹配的浏览器。
<identification>
<header name="Accept"
match="text/vnd\.wap\.wml|text/hdml" />
<header name="Accept"
nonMatch="application/xhtml\+xml; profile|application/vnd\.wap\.xhtml\+xml" />
</identification>
下表描述 header 元素包含的属性。match 或 nonMatch 属性必须存在一个,但两者不能同时存在。
|
属性
|
说明
| | match | String 属性,不能与 nonMatch 属性在同一个元素中使用。 指定正则表达式,请求标头值必须匹配此表达式才能满足该标识。有关格式化正则表达式的信息,请参见 .NET Framework 正则表达式。 | | name | 必需的 String 属性。 指定标头的名称。 | | nonMatch | String 属性,不能与 match 属性在同一个元素中使用。capture 元素的 capability 子元素中不使用此属性。 指定正则表达式,请求标头值不匹配此表达式时才能满足该标识。 |
header 元素不包含子元素。 |
| header(sampleHeaders 的子元素) | 指定此浏览器的一个示例标头。此元素是可选的,仅用于提供信息。模拟器或调试工具可以使用这组标头来模拟请求的浏览器。 下表描述 header 元素包含的属性。
|
属性
|
说明
| | name | 必需的 String 属性。 指定标头的名称。 | | value | 必需的 String 属性。 指定标头的值。 |
header 元素不包含子元素。 |
| identification | 定义有关如何从传入请求识别此浏览器的信息。 identification 元素不包含任何属性。 identification 元素可以包含一个或多个下列子元素: -
header -
userAgent -
capability |
| sampleHeaders | 指定此浏览器的一组示例标头。此元素是可选的,仅用于提供信息。模拟器或调试工具可以使用这组标头来模拟请求的浏览器。 sampleHeaders 元素不包含任何属性。 sampleHeaders 元素可以不包含下面的子元素,也可以包含多个该子元素: |
| userAgent | 指定作为请求的用户代理标头的匹配依据的表达式。例如,IE.browser 文件中包含的 IE4 浏览器的以下定义使用 "MSIE 4" 字符串,并根据随请求发送的用户代理标头来识别浏览器。
<identification>
<userAgent match="MSIE 4" />
</identification>
下表描述 userAgent 元素包含的属性。match 或 nonMatch 属性必须存在一个,但两者不能同时存在。
|
属性
|
说明
| | match | String 属性,不能与 nonMatch 属性在同一个元素中使用。 指定正则表达式,用户代理必须匹配此表达式才能满足该标识。有关格式化正则表达式的信息,请参见 .NET Framework 正则表达式。 | | nonMatch | String 属性,不能与 match 属性在同一个元素中使用。 指定正则表达式,用户代理不匹配此表达式时才能满足该标识。capture 元素的 capability 子元素中不使用此属性。 |
userAgent 元素不包含子元素。 |