ASP编程入门进阶(十四):Browser & Linking

一、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里的值,而该值随时可以被客户修改,或者记录过时,不能真实反映到浏览器的情况,慎用之。

二、Content Linking组件

曾经用DW做网页都有这样一个烦恼:新做了页面,其它所有相关的页都要重新再做一次超级链接。一次也就罢了,多了多了不禁觉得无用功做了不少。试想如果能有一个专门的文件来负责页面的连接那该多好。

Content Linking 组件也就应运而生了。它非但可以使你在这些页面中建立一个目录表,而且还可以在它们中间建立动态连接,并自动生成和更新目录表及先前和后续的 Web 页的导航链接。

使用该组件,首先需要编写一个目录文件,也就是网页网址的顺序列表文件,它是一个文本文件,可以自由命名。其次,编写一个ASP文件,根据目录文件提供的信息自动生成带超链的目录页。如果需要在每一页上假如“向前或向后翻页”的超链,就再编写一个能自动生成翻页超链的包含文件,可使用inc为扩展名,例如"Nlink.inc"。以后,在组内每一页中包含它。

1,link.txt




redirect.asp?url=http://www.cnbruce.com/    cnbruce.com
redirect.asp?url=http://www.blueidea.com/    blueidea.com
redirect.asp?url=http://www.it365cn.com/    it365cn.com

该目录文件的网址就是连接网址,文本就是连接文本了,需要注意的是中间采用Tab键进行分隔。

2,link.asp




<%Set objNextLink = Server.CreateObject("MSWC.Nextlink")%>
<%
intCount = objNextLink.GetListCount("link.txt")
For i = 1 To intCount
%>
<a href="<%=objNextLink.GetNthURL("link.txt", i) %>">
<%=objNextLink.GetNthDescription("link.txt", i) %>
</a>
<br>
<%Next%>

Set objNextLink = Server.CreateObject("MSWC.Nextlink")”建立Nextlink组件的连接
objNextLink.GetListCount("link.txt")”提取link.txt文件中的列表数目
objNextLink.GetNthURL("link.txt",i)”提取link.txt文件中第i行文本的连接网址
objNextLink.GetNthDescription("link.txt",i)”提取link.txt文件中第i行文本的连接文本

3,redirect.asp
也就是转向文件了。




<%
Response.Clear
Response.Redirect Request.QueryString("url")
%>

呵呵,是不是觉得还没用到“上一页”、“下一页”的功能。再来~!

4,link1.txt




1.asp    ASP编程入门进阶(一)
2.asp    ASP编程入门进阶(二)
3.asp    ASP编程入门进阶(三)
4.asp    ASP编程入门进阶(四)

主要功能是设置文本和连接

5,link1.inc




<%Set Nextlink=Server.CreateObject("MSWC.NextLink")
Response.write "当前文章索引号为" & NextLink.GetListIndex("link1.txt") & "<br>"
Response.write "上一章的标题:" & NextLink.GetPreviousDescription("link1.txt") & "<br>"
Response.write "下一章的标题:" & NextLink.GetNextDescription("link1.txt") & "<br>"
count = NextLink.GetListCount("link1.txt")
Response.write "<a href="""&NextLink.GetNthUrl("link1.txt",1)&"""&>"&"第一章"&"</a> "
Response.write "<a href="""&NextLink.GetPreviousUrl("link1.txt")&"""&>"&"上一章"&"</a> "
Response.write "<a href="""&NextLink.GetNextUrl("link1.txt")&"""&>"&"下一章"&"</a> "
Response.write "<a href="""&NextLink.GetNthUrl ("link1.txt",count)&"""&>"&"最后一章"&"</a><br>"
%>





GetListCount(目标文件名) 显示组件中包含的连接的文件数目。
GetListIndex(目标文件名) 显示当前页在这些连接文件中的前后位置索引值。
GetNextDescription(目标文件名) 显示连接文件中下一个的描述。
GetNextURL(目标文件名) 显示连接文件中的下一个文件的URL地址。
GetNthDescription(目标文件名, N) 显示连接文件中第N个网页的描述。
GetNthURL(目标文件名, N) 显示连接文件中第N个网页的文件URL地址。
GetPreviousDescription(目标文件名) 显示连接文件中前一个文件的描述。
GetPreviousURL(目标文件名) 显示连接文件中前一个文件的URL地址。

6,1.asp,2.asp,3.asp,4.asp




<!--#include file="link1.inc"--><br>
以下是具体内容

着就是一个很简单的分页程序了。当然接着的后面会有些更详细更复杂的分页,慢慢来吧,呵呵。

(0)

相关推荐

  • VS2013连接MySQL5.6成功案例一枚

    如何在VS2013下对MySQL5.6进行连接,本文为大家提供了解决方案,供大家参考,具体内容如下 环境:win832系统,VS2013,MySQL5.6,boost1.60 需要注意的是,安装MySQL时需要安装完整版本,否则在MySql的目录下可能会没有Connector.C++ 1.1这个目录. boost下载后,直接解压即可.(我是放在C:\Program Files目录下),下载地址:http://www.boost.org/users/download/ 连接的方式有2种: 一种是纯

  • VS2013设置护眼背景颜色

    打开VS2013 -> 工具 -> 选项 -> 环境 -> 字体和颜色 -> 纯文本(显示项中) -> 项目背景 -> 自定义-> 色调位85.饱和度123.亮度205,保存即可.测试了一下VS2010同样试用,估计其他版本的也都是一样的设置方法. 看着舒服多了吧,没那么累了吧~~

  • ASP.NET State service状态服务的问题解决方法

    异常详细信息: System.Web.HttpException: 无法向会话状态服务器发出会话状态请求.请确保已启动 ASP.NET State service,并且客户端和服务器端口是相同的.如果服务器位于远程计算机上,请检查 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\AllowRemoteConnection 的值,确保服务器接受远程请求. 这是因为ASP.NET State s

  • VS2013的Browser Link引起的问题

    环境:vs2013 问题:在调用一个WebApi的时候出现了错误: 于是我用Fiddler 4直接调用这个WebApi,状态码是200(正常的),JSon里却提示在位置9409处文本非法, 以TextView方式查看,在9409处发现了Brow Link的踪迹: 其实我是从数据库中表中查询出FaGui_Html字段,该字段是一个表示Html页面的Html代码,在序列化前,Vs2013却在我的这个代码的</body>前插入了Browser Link的代码. 解决:在Vs2013里禁用Browse

  • ASP.NET对路径"xxxxx"的访问被拒绝的解决方法小结

    在windows 2003下,在运行web应用程序的时候出现一下错误: 服务器无法处理请求,-->对路径"C:/temp/mytest.txt"的访问拒绝 说明: 执行当前 Web 请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.UnauthorizedAccessException: 对路径"D:/temp1/MyTest.txt"的访问被拒绝. 解决方案一 在需要进行读写操

  • asp.net“服务器应用程序不可用” 解决方法

    引起这个的原因大概是现安装了.Net Framework后装的IIS导致.Net没有在IIS里注册. 在网上找了很久都是说从.net命令行工具里运行aspnet_regIIS /i就可以了(或者在类似下面的目录:C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -i),但是自己试了很多次都不行,后来发现还是要先卸载再安装,重新创建为应用程序才行,具体如下: 从.net命令行工具里运行 aspnet_regIIS /u 卸

  • Sql server 2005安装时ASP.Net版本注册要求警告的解决方法

    在安装SQL Server 2005 时出现ASP.Net版本注册要求(警告),提示找不到ASP.Net 在 Microsoft Internet 信息服务(IIS)中的版本注册信息. 首先在确认安装了IIS,并且安装了IIS的ASP.Net组件,位置在[Internet 信息服务]--[万维网服务]--[应用程序开发 在安装SQL Server 2005 时出现ASP.Net版本注册要求(警告),提示找不到ASP.Net 在 Microsoft Internet 信息服务(IIS)中的版本注册

  • asp.net+FCKeditor上传图片显示叉叉图片无法显示的问题的解决方法

    弄了半天也没有找到原因,然后又重新到网上下载几个,还是不行,郁闷坏了,最后结合其他编辑器的用法,才知道是配置文件夹中上传文件夹的路径写错了 比如要上传到项目的根目录下的UserFiles下面,web.config的配置如下: 复制代码 代码如下: <appSettings> <add key="FCKeditor:BasePath" value="~/FCKeditor" /> <add key="FCKeditor:User

  • 无法识别的属性“type”+IIS没有Asp.net配置选项的解决方法

    如下图: 完整的出错信息看上图.这种情况一般来说是因为.net的版本问题造成的.我们看到最后一行显示ASP.NET版本为1.1.4322.2407.我要把它改成.NET2.0.打开IIS6,右击属性,居然没有发现ASP.NET的配置选项,虽然好久没搞这个了,但是印象中绝对是有一个ASP.NET选项卡的.我很奇怪,我以为是.net framework 2.0没安装,下载下来安装,提示已经安装了,打开"删除添加程序",的确已经安装了.查看IIS的"Web 服务扩展",发

  • asp.net iis 无法显示网页的解决方法分析

    关于这个问题的解答,网络上有成千上万个版本,当然,出现问题的诱因不同,解决的途径也不同,所以我不排除其他解决此类问题的办法,但是这些办法都没有解决过我的问题,因为就是在一个绝对"干净"的系统环境下进行配置,也出现过此类问题.这期间,我曾显得那么无奈,那么郁闷.好在努力终有回报,我成功的解决了这个问题(主要是对文件夹权限的设置),今天把它分享出来,是一种展示,也是向大家提供一种思维方式.当然,这个办法也不是万能的,只是它显得更有效率而已. 具体步骤如下: 1.右键点击您要创建的虚拟目录文

随机推荐