手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网络编程>Asp编程>列表

ASP 3.0高级编程(二十五)

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

browser=Default
Version=0.0
majorver=#0
minorver=#0
frames=False
tables=True
cookies=False
backgroundsounds=False
vbscript=False
javascript=False
javaapplets=False
ActiveXcontrols=False

这里假设一种最坏的情况,浏览器几乎什么都不支持。应在此基础上定义我们实际想要使用的值。但是,如果定义了一些缺省值为True,在一个UNIX终端上使用纯文本浏览器浏览页面时,可能达不到我们所希望的效果。
维护browscap.ini文件
关闭浏览器时,更新Browscap.ini文件中相应值使其与浏览器的特性保持一致,增加一些旧的或我们关注的专用的值显然也是非常重要的。为了给用户提供方便,通常可从Microsoft Web网站上下载支持ASP的一个相当全面的browscap.ini版本或其升级版本,而CrScape Inc公司提供的browscap.ini版本经常比Microsoft Web网站上的版本更新一些。
可以在http://www.cyscape.com/browscap/上找到最新的browscap.ini版本,并且订阅一份邮件列表就可自动地收到该文件的最新版本。CrScape公司也制作一个与Microsoft Browser Capabilities组件竞争的组件,称为browserHank(本章后面将介绍),新版的browscap.ini文件也可从http://www.asptracker.com上获得。
2. 使用Browser Capabilities组件
我们已经掌握了browscap.ini文件如何提供包含有关特定浏览器信息的可定制属性,下面介绍如何使用Browser Capabilities组件。相对而言,使用Browser Capabilities组件简单一些,下面创建组件的一个实例并说明其属性。
<% 'In VBScript:
Set objBCap = Server.CreateObject("MSWC.BrowserType")
blnVBScriptOK = objBCap.vbscript 'save the result in a variable
If blnVBScriptOK Then
Response.Write "This browser supports VBScript"
Else
Response.Write "This browser doesn't support VBScript"
End If
%>
上面代码程序检查浏览器是否支持VBScript并显示一个信息,可以想象这段代码根据浏览器给出的不同响应的网页,引导用户到不同的页面。
当然,使用Browser Capabilities组件的属性可做比这更复杂的工作,一个让人喜爱的技术是根据浏览器支持的属性为网站载入不同的索引网页。如果网站有一套使用帧(frame)的页面和一套不使用帧的页面,当用户第一次访问网站时,能够检查浏览器显示帧的能力,并将其重新定位到合适的索引网页上。
3. 使用Browser Capabilities的cookie特性
新版Browser Capabilities组件增加的特性之一是提供了一种方式,以获得更多的有关调用网页的特定客户的信息.
browscap.ini文件的信息只适用于特定类型的所有浏览器,所以组件仅能报告所安装的浏览器的共同特性,例如能知道浏览器是否支持cookie,但不能知道用户是否已在浏览器“选项”对话框中关闭了cookie。
同样,使用复杂的页面设计时,最好了解用户使用的连接类型,以便能选择大小适当的图像文件传送给他们,例如用户通过局域网(而不是调制解调器)连接,则允许我们提供更加丰富的环境。如果能知道用户采用的屏幕分辨率、浏览器所用的语言、操作系统和处理器类型等参数,对于我们的设计是有帮助的。
IE 5通过使用缺省行为提供这种信息,这是客户端网页的一个元素。IE 5中的行为是新增加的,其他的浏览器不支持,这是一种对网页中的元素添加特殊功能的方法,通过STYLE属性(或CSS风格表项)和元素联系起来。特别是,IE 5提供的clientCaps行为能用于提供有关客户机和浏览器设置以及当前选项的信息。
通过创建一种元素和与之相连的clientCaps行为,能通过该元素查询到有关客户的信息。下列页面来自我们提供的示例文件(browscap_cookie.htm)正是这样做的。它首先定义了应用于<IE:clientcaps>类型的所有元素的包含clientCaps行为的风格。这是XML语法,在<HTML>标记的XLMNS属生中使用为当前网页定义的名称空间。
然而,页面browscap_cookie.htm从应用clientCaps行为的元素得到一系列值,并且建立一个包含这些值的cookie,最后,把这个cookie分配给文档的cookie属性,以便有对这个特定服务器目录的页面请求时,将它传送给服务器。
<HTML XMLNS:IE>
<HEAD>
<STYLE>
IE\:clientcaps {behavior:url(#default#clientcaps)}
</STYLE>
</HEAD>
<BODY ONLOAD="createCookie();">
<IE:clientcaps ID="objCCaps" />

<SCRIPT LANGUAGE="JavaScript">

function stopAllErrors() {
return true; // prevent display of any errors
}

function createCookie() {
window.onerror = stopAllErrors;
var strCookie = new String();
strCookie = 'width=' objCCaps.width
'&height=' objCCaps.height
'&availWidth=' objCCaps.availWidth
'&availHeight=' objCCaps.availHeight
'&bufferDepth=' objCCaps.bufferDepth
'&colorDepth=' objCCaps.colorDepth
'&javaEnabled=' objCCaps.javaEnabled
'&cookieEnabled=' objCCaps.cookieEnabled
'&connectionType=' objCCaps.connectionType
'&platform=' objCCaps.platform
'&cpuClass=' objCCaps.cpuClass
'&systemLanguage=' objCCaps.systemLanguage
'&userLanguage=' objCCaps.userLanguage;
document.cookie = 'BrowsCap=' strCookie;
}
</SCRIPT>

</BODY>
</HTML>
为了使用这个cookie,只需把特定的METADATA指令插入到ASP页面中。如下所示:
<!-- METADATA TYPE="Cookie" NAME="BrowsCap"
SRC="browserCapabilities/browscap_cookie.htm"-->

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!