ASP Browser Capabilities 组件

实例

Browser Capabilities 组件
本例演示如何测定每一个访问网站的浏览器的类型、性能以及版本号。

ASP Browser Capabilities 组件

ASP Browser Capabilities 组件会创建一个 BrowserType 对象,这个对象可测定访问者浏览器的类型、性能以及版本号。

当浏览器连接到服务器时,就会向服务器发送一个 HTTP User Agent 报头。这个报头包含着有关浏览器的信息(比如浏览器类型和版本号)。BrowserType 对象会把报头中的信息与服务器上名为 "Browscap.ini" 的文件中的信息作比较。

如果标题中被发送的浏览器类型和版本号和 "Browsercap.ini" 文件中信息可以匹配,那么我们就可以使用 BrowserType 对象列出这个匹配的浏览器的相关属性。如果上述情况不匹配,这个对象会把每个属性设置为 "UNKNOWN"。

语法

<%
Set MyBrow=Server.CreateObject("MSWC.BrowserType") 
%>

下面的例子对在 ASP 文件中创建一个 BrowserType 对象,并显示一个展示当前浏览器性能的表格:

<html>
<body>
<%
Set MyBrow=Server.CreateObject("MSWC.BrowserType")
%>
<table border="1" width="100%">
<tr>
<th>Client OS</th>
<th><%=MyBrow.platform%></th>
</tr><tr>
<td >Web Browser</td>
<td ><%=MyBrow.browser%></td>
</tr><tr>
<td>Browser version</td>
<td><%=MyBrow.version%></td>
</tr><tr>
<td>Frame support?</td>
<td><%=MyBrow.frames%></td>
</tr><tr>
<td>Table support?</td>
<td><%=MyBrow.tables%></td>
</tr><tr>
<td>Sound support?</td>
<td><%=MyBrow.backgroundsounds%></td>
</tr><tr>
<td>Cookies support?</td>
<td><%=MyBrow.cookies%></td>
</tr><tr>
<td>VBScript support?</td>
<td><%=MyBrow.vbscript%></td>
</tr><tr>
<td>JavaScript support?</td>
<td><%=MyBrow.javascript%></td>
</tr>
</table>
</body>
</html>

输出:

Client OS WinNT
Web Browser IE
Browser version 5.0
Frame support? True
Table support? True
Sound support? True
Cookies support? True
VBScript support? True
JavaScript support? True

Browscap.ini文件

"Browsercap.ini" 文件用于声明属性,并设置各浏览器的默认值。

本节内容不是关于如何 Browscap.ini 文件的教程,我们只提供一些关于 "Browsercap.ini" 的基础知识和概念。

"Browsercap.ini" 文件可包含下面的信息:

[;comments]
[HTTPUserAgentHeader] 
[parent=browserDefinition]
[property1=value1]
[propertyN=valueN] 
[Default Browser Capability Settings]
[defaultProperty1=defaultValue1]
[defaultPropertyN=defaultValueN] 
参数 描述
comments 可选项。任何起始于分号的代码行都被 BrowserType 对象忽略
HTTPUserAgentHeader 可选项。规定与在 propertyN 中设定的 browser-property 值声明相关的 HTTP User Agent 报头。允许使用通配符。
browserDefinition 可选项。规定作为父浏览器使用的某个浏览器的 HTTP User Agent header-string。当前浏览器的定义会继承在父浏览器的定义中所有声明过的属性值。
propertyN 可选项。规定浏览器的属性。下面的表格列出了某些可能的属性:
  • ActiveXControls - 是否支持ActiveX控件?
  • Backgroundsounds - 是否支持背景声音?
  • Cdf - 是否支持针对网络广播(Webcasting)的频道定义格式(Channel Definition Format)?
  • Tables - 是否支持表格?
  • Cookies - 是否支持cookies?
  • Frames - 是否支持框架?
  • Javaapplets - 是否支持Java applets?
  • Javascript - 是否支持JScript?
  • Vbscript - 是否支持VBScript?
  • Browser - 定义浏览器的名称
  • Beta - 浏览器是否为beta软件?
  • Platform - 规定浏览器运行的平台
  • Version - 规定浏览器的版本号。
valueN 可选项。规定 propertyN 的值。可为字符串、整数(前缀为#)或者逻辑值。
defaultPropertyN 可选项。规定浏览器属性的名称,假如已定义的 HTTPUserAgentHeader 值中没有值能与浏览器发送的 HTTP 用户代理报头相匹配,则为这个属性分配一个默认的值。
defaultValueN Optional. 规定 defaultPropertyN 的值。可为字符串、整数(前缀为 #)或者逻辑值。

"Browsercap.ini"文件会类似这样:

;IE 5.0
[IE 5.0]
browser=IE
Version=5.0
majorver=#5
minorver=#0
frames=TRUE
tables=TRUE
cookies=TRUE
backgroundsounds=TRUE
vbscript=TRUE
javascript=TRUE
javaapplets=TRUE
ActiveXControls=TRUE
beta=False;DEFAULT BROWSER
[*]
browser=Default
frames=FALSE 
tables=TRUE 
cookies=FALSE 
backgroundsounds=FALSE 
vbscript=FALSE 
javascript=FALSE