ASP編程入門進階(十四):Browser & Linking_ASP基礎

來源:互聯網
上載者:User
一、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>
以下是具體內容


著就是一個很簡單的分頁程式了。當然接著的後面會有些更詳細更複雜的分頁,慢慢來吧,呵呵。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.