編程 一、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.comredirect.asp?url=http://www.blueidea.com/ blueidea.comredirect.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.ClearResponse.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(