ASP编程入门进阶(十四):Browser & Linkin
作者:cnbruce 来源:CSDN 发布时间:2008-06-12 07:08:00
一、Browser Capabilities组件
该组件最主要的作用是:提取识别客户端浏览器的版本信息。
其原理是这样的:当客户端浏览器向服务器发送页面请求时,同时会自动发送一个User Agent HTTP标题,而该标题是一个声明浏览器及其版本的 ASCII 字符串。而Browser Capabilities组件就将User Agent映射到在文件Browscap.ini中所注明的浏览器 , 并通过BrowserType对象的属性来识别客户浏览器。
若该对象在 browscap.ini 文件中找不到与该标题匹配的项,那么将使用默认的浏览器属性。若该对象既未找到匹配项且 browscap.ini 文件中也未指定默认的浏览器设置,则它将每个属性都设为字符串 "UNKNOWN"。
在默认情况下,browscap.ini文件被存放在 WINDOWS\SYSTEM\INERSRV( 如果是95/98+PWS4) 或 NT\SYSTEM32\INERSRV( 如果是 NT) 目录中,你可以自己编辑这个文本文件,以添加自己的属性或者根据最新发布的浏览器版本的更新文件来修改该文件。
可以得出结论,Browser Capabilities组件也就是提取某个文件中的内容,然后比较得出显示。具体该如何应用呢?
1,btinfo.asp
<%set bc=server.CreateObject("mswc.browsertype")%> 浏览器名称是browser:<%=bc.browser%><br> 浏览器版本是version:<%=bc.version%> <br>浏览器主版本是majorver:<%=bc.majorver%> <br>浏览器辅版本是minorver:<%=bc.minorver%> <br>浏览器的运行平台是platform:<%=bc.platform%> <br>
很显然“<%set bc=server.CreateObject("mswc.browsertype")%> ”就是进行的浏览器组件的建立以下诸如“bc.browser”之类即为显示浏览器的具体某个特性了。
2,btif.asp
<%set bc=server.CreateObject("mswc.browsertype")%> <%if bc.frames=true then%> 浏览器支持多窗口(frames)显示 <%else%> 浏览器不支持多窗口(frames)显示 <%end if%> <br> <%if bc.backgroundsounds=true then%> 浏览器可以播放背景音乐(backgroundsounds) <%else%> 浏览器不能播放背景音乐(backgroundsounds) <%end if%> <br><%if bc.tables=true then%> 浏览器支持表格(tables)显示 <%else%> 浏览器不支持表格(tables)显示 <%end if%> <br> <%if bc.beta=true then%> 你的浏览器是一测试版(beta) <%else%> 你的浏览器是一正式版 <%end if%> <br> <%if bc.activexcotrols=true then %> 浏览器支持active控制 <%else%> 浏览器不支持active控制 <%end if%> <br> <%if bc.cookies=true then%> 浏览器支持cookie功能 <%else%> 浏览器不支持cookie功能 <%end if%> <br> <%if bc.vbscript=true then%> 浏览器支持vbscript <%else%> 浏览器不支持vbscript <%end if%> <br> <%if bc.jscript=true then%> 浏览器支持jscript <%else%> 浏览器不支持jscript <%end if%>
该代码则是检测当前浏览器对各类网页技术的支持情况,那下面就可以根据某特定情况做相应变动
3,fram.asp
<%set bc=server.CreateObject("mswc.browsertype") if bc.frames then %><frameset rows="*,*"> <frame src="http://www.google.com"> <frame src="http://www.baidu.com"></framest><%else%>你的浏览器不支持框架<%end if%>
很简单的意思:如果当前浏览器支持框架则进行frameset的显示,否则提示“你的浏览器不支持框架”
当然,需要提醒你的:不要过分依赖该组件,因为其只是提取browscap.ini里的值,而该值随时可以被客户修改,或者记录过时,不能真实反映到浏览器的情况,慎用之。
猜你喜欢
- JavaScript中的XMLHttpRequest和XML DOM首先,我们需要建立一些规则。特殊的XMLHttpRequest对象和一般
- 春节前在蓝色理想上发了个“雅虎口碑招聘前端工程师 ”的启事,节后收到很多简历,加之HR通过专业招聘网站得到的简历和朋友同事推荐的简历,数量上
- 在web开发中经常遇到多关键词对对单个字段查询,我一般是通过动态数组来实现的。当然多个关键词的一般是用空格或,隔开,我这几假设多个关键词用空
- 无聊的人在无聊的时间做无聊的事打发自己,结果在无聊的事情中发现了IE对内联文字解释的一些疑惑。以下问题在FF2中没发现,而我也只
- 如果你看过YUI的RAW源码,会发现很多跟javadoc语法类似的注释。据说(via)是使用JSDoc这个工具。但我探索了一遍,发现YUI多
- 代码如下:create table A_TEST ( PAYOUT_ITEM_CODE VARCHAR2(30) not null, FOR
- 友情提示,您阅读本篇博文的先决条件如下:1、本文示例基于Microsoft SQL Server 2008 R2调测。2、具备 Transa
- 用IIS调试ASP程序时,有的页面可以显示出错行及出错原因,虽然原因不是很具体但足以引导调试程序,但有些时候就直接出现:HTTP 500 -
- 在我的前一篇教程《九宫格基本布局》中,我介绍了用相对定位加绝对定位的方法来制作九宫格的基本布局。这是一种比较符合人们惯性思维的方法,好像制作
- 大家都知道,在ASP中可以使用Request.ServerVariables("REMOTE_ADDR")来取得客户端的
- MySQL是一个非常流行的小型关系型数据库管理系统,2008年1月16号被Sun公司收购。目前MySQL被广泛地应用在Internet上的中
- 语法: text-overflow : clip | ellipsis 参数: clip : 不显示省略标记(...),而是简单的裁切 el
- 首先恭喜月影,当然希望好书大卖!原文提供了样章下载1.1M,pdf格式的。如果大家想下载可以访问源地址:http://bbs.51js.co
- 网页设计是由很多个不同的元素构成的,而这些元素的重要性都不同,并且有些元素还需要尤为的突出.有些元素彼此之间存在着联系,而另外的元素之间则一
- 这个技巧将教你如何用css做出漂亮的文本按钮,有活力的按钮将节省你很多制作图片的时间,也能让你一天的工作中成为一个快乐的人,让我们一起看看效
- 说到这个话题,我们有个产品叫群组,为什么人们需要群组?简单说,群组就是个圈子,是有共同爱好和话题的人群聚在一起讨论、分享的地方。这个产品的诞
- 去掉数据重复 增加两个字段 alter TABLE T_Employee Add FSubCompany VARchar(20); ALTE
- 方法一一般情况下,SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当定期进行此操作以免数据库日志过大1、设置数
- 一:直接把MDB(MDE)文件放到网络中的共享目录中,在客户端做好对应的快捷方式二:数据库折分(菜单:工具,实用工具,折分)成前后台,把后台
- 代码如下:declare @Q_ID uniqueidentifier set @Q_ID = dbo.uf_GetParamValueBy