打印本文 打印本文  关闭窗口 关闭窗口
ASP 3.0高级编程(二十五)
作者:采集员 文章来源:来源于网络 点击数: 更新时间:2005/9/10 12:33:23
bsp;         '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"-->
现在,运行这个ASP网页时,会自动把页面browscap_cookie.htm发送给客户机,客户机便运行这个行为特性,然后返回cookie,随后Browser Capabilities组件把cookie的内容添加到组件实例的可用属性的列表中,查询方法与查询browscap.ini文件创建的属性所用的方法相同。
width: <B><% = objBCap.width %></B><BR>
height: <B><% = objBCap.height %></B><BR>

Browser Capabilities示例网页显示两类系列数值,一类是从由browscap.ini文件决定的属性中收集的数据,另一类来自客户端cookie页面。当然,不限于仅仅收集来自客户端页面中的clientCaps行为的值,使用动态HTML技术可以查询浏览器的任何属性或者是像navigator.appName这样的传统对象属性。Browser Capabilities组件示例页面如图6-8所示:
图6-8  Browser Capabilities组件示例页面


上一页  [1] [2] 



打印本文 打印本文  关闭窗口 关闭窗口