這篇文章是ASP基礎入門第二篇,第一篇展示了ASP動態網站設計的一些最基本的方法,相信通過實踐各位對ASP 已經有了最基本的了解,本文將進一步介紹ASP動態網站的一些基本技巧,需要的朋友可以參考下
本篇將繼續介紹一些用ASP 編寫的WEB 動態功能。由於WEB 瀏覽器標準的不一致從而使得如何能夠讓自己製作的網站去適應各種不同的瀏覽器成為了廣大網站設計者最為頭疼的事,在如今的形勢之下,我們不肯也不可能去拋棄Netscape 或IE 中的任何一種客戶群,但我們有時候又不得不去考慮客戶端瀏覽器的實際瀏覽效果,過去我們常用JavaScript 編寫一段程序來辨別客戶端使用的不同的瀏覽器,那麼今天就讓我們來看看如何使用ASP 更為便捷且精確地達到這一目的。將以下代碼,剪貼到你的Notebook 中,並保存為browser.asp 。
- <%@LANGUAGE=VBScript%>
- <HTML>
- <HEAD>
- <TITLE>用ASP提供的瀏覽器性能組件來辨別客戶瀏覽器</TITLE>
- </HEAD>
- <BODYBGCOLOR=Whitetopmargin=10leftmargin=10>
- <fontsize=4face=Arial,Helvetica>
- <b>用ASP提供的瀏覽器性能組件來辨<br>別客戶瀏覽器</b></font><br>
- <hrsize=1color=#000000>
- <!--定義並創建瀏覽器性能對象-->
- <%
- Dimbc
- Setbc=Server.CreateObject(MSWC.BrowserType)
- %>
- <!--在表格中描述客戶瀏覽器的信息-->
- <Tableborder=1>
- <tr>
- <td>BrowserName</td>
- <td><%=bc.Browser%></Td>
- <tr>
- <td>BrowserVersion</td>
- <td><%=bc.Version%></Td>
- <tr>
- <td>MajorVersion</td>
- <td><%=bc.Majorver%></Td>
- <tr>
- <td>MinorVersion</td>
- <td><%=bc.Minorver%></Td>
- <tr>
- <td>FrameSupport</td>
- <td><%=bc.Frames%></Td>
- <tr>
- <td>TableSupport</td>
- <td><%=bc.Tables%></Td>
- <tr>
- <td>CookieSupport</td>
- <td><%=bc.Cookies%></Td>
- <tr>
- <td>BackgroundSoundSupport</td>
- <td><%=bc.BackgroundSounds%></Td>
- <tr>
- <td>VBScriptSupport</td>
- <td><%=bc.VBScript%></Td>
- <tr>
- <td>JavaScriptSupport</td>
- <td><%=bc.JavaScript%></Td>
- </table>
- </BODY>
- </HTML>
browscap.ini 中的一部分內容( 不包括註釋部分) :
用http 方式瀏覽該文件,根據使用的瀏覽器的不同,你會看到類似下圖(Asp2b.gif) 的頁面。在本例中我們用到了一個ASP 提供的ActiveX 組件--Browser Capabilities 。 ActiveX 組件作為基於Web 的應用程序部分在Web 服務器上運行,組件提供了應用程序的主要功能( 如訪問、修改數據庫等) ,這樣WEB 設計者們就不必創建或重新創建執行這些任務的代碼,從而提高了工作的效率,有關ActiveX 組件將在今後詳細討論。為了使用ASP 辨別客戶瀏覽器,在這裡我們利用Browser Capabilities 組件創建了一個Browser Type 對象,該對象提供帶有客戶端網絡瀏覽器功能說明的用戶腳本,當瀏覽器連接到網絡服務器上時,它會自動發送一個UserAgentHTTP 標題,該標題是一個聲明瀏覽器及其版本的ASCII 字符串。此Browser Type 對象將該標題和在Browscap.ini 文件中的項進行比較(Win98 、 IIS3 、 IIS4 的用戶分別可以在以下目錄中win98/system/inersrv 、 /winnt/system32/inetsrv/asp/cmpnts 、 / winnt/system32/inetsrv 找到該文件) 。如果找到匹配的項,則該Browser Type 對象將認為瀏覽器列表屬性與UserAgent 標題匹配。若該對像在browscap.ini 文件中找不到與該標題匹配的項,那麼將使用默認的瀏覽器屬性。若該對象既未找到匹配項且browscap.ini 文件中也未指定默認的瀏覽器設置,則它將每個屬性都設為字符串UNKNOWN 。我們可以通過更新browscap.ini 文件將屬性或新的瀏覽器定義添加到該組件中,從而擴大ASP 識別的瀏覽器範圍和精確度。下面列出了
[IE 4.0] ;;HTTPUserAgentHeader
browser=IE ;;指定該瀏覽器的名稱。
Version=4.0 ;;指定該瀏覽器的版本號。
majorver=4 ;;指定主版本號
minorver=0 ;;指定副版本號
frames=TRUE ;;指定該瀏覽器是否支持框架。
tables=TRUE ;;指定該瀏覽器是否支持表格。
cookies=TRUE ;;指定該瀏覽器是否支持cookies。
backgroundsounds=TRUE ;;指定該瀏覽器是否支持背景音樂。
vbscript=TRUE ;;指定該瀏覽器是否支持VBScript。
javascript=TRUE ;;指定該瀏覽器是否支持JScript。
javaapplets=TRUE ;;指定該瀏覽器是否支持Java程序。
ActiveXControls=TRUE ;;指定該瀏覽器是否支持ActiveX 控件。
Win16=False ;; 指定該瀏覽器是否支持Win16
beta=False ;;指定該瀏覽器是否測試版。
cdf=True ;;指定該瀏覽器是否支持用於Web 預測的Channel Definition Format。
;;ie 4.01
[Mozilla/4.0 (compatible; MSIE 4.01*; Windows 95)]
parent=IE 4.0 ;;父標籤允許第二個瀏覽器繼承第一個瀏覽器的定義
version=4.01
minorver=01
platform=Win98
;;Default Browser ;;指定默認的瀏覽器的設置
[Default Browser Capability Settings]
browser=Default
frames=FALSE
tables=TRUE
cookies=FALSE
backgroundsounds=FALSE
vbscript=FALSE
javascript=FALSE
在上面的例子中,父標籤允許第二個瀏覽器繼承第一個瀏覽器的定義,以便Microsoft Internet Explorer4.01 定義得以繼承Microsoft Internet Explorer4.0 定義全部的屬性( 例如, frames=TRUE 、 tables= TRUE 以及cookies=TRUE) 。並通過添加platform=Win98 行來指定平台,用version=4.01 重寫版本信息。
在先前的browser.asp 中我們僅僅是將客戶瀏覽器的屬性一一羅列了出來,下面讓我們添加一些動態的效果。將以下代碼剪貼到文件browser.asp 中( 編輯註:為顯示方便,所有< 符號後都多加了個空格,實際使用時請注意去掉。 ):
- <%if(bc.frames=TRUE)then%>
- 你的瀏覽器支持框架!<br>
- <%else%>
- 難道現在你還在使用不支持框架的瀏覽器???<br>
- <%endif%>
- <%if(bc.tables=TRUE)then%>
- 你的瀏覽器支持表格。 <br>
- <%else%>
- 難道現在你還在使用不支持表格的瀏覽器???<br>
- <%endif%>
- <%if(bc.BackgroundSounds=TRUE)then%>
- 有沒有聽到美妙的音樂???<br>
- <%else%>
- 可惜,您的瀏覽器不支持背景音樂。 <br>
- <%endif%>
- <%if(bc.vbscript=TRUE)then%>
- 您的瀏覽器支持Vbscript。 <br>
- <%else%>
- 您的瀏覽器不支持Vbscrip。 <br>
- <%endif%>
- <%if(bc.javascript=TRUE)then%>
- 您的瀏覽器支持Javascript。 <br>
- <%else%>
- 您的瀏覽器不支持Javascript。 <br>
- <%endif%>
在你的瀏覽器中刷新browser.asp ,程序將自動辨別瀏覽器的屬性並動態顯示不同的信息。不難發現在整個browser.asp 文件中幾乎沒有用到任何復雜的編程,就輕而易舉的達到了動態鑑別客戶瀏覽器並動態產生響應事件的效果。事實上,這個程序的關鍵就在於前文提到的ActiveX 組件--Browser Capabilities ,它的作用類似於一個Function ,只需簡單地在程序中調用該組件即能達到你所希望的效果。
通過這兩篇對ASP 的介紹,大家已經看到編寫ASP 程序是相當輕鬆的,要掌握ASP ,無非就是掌握ASP 內置的五個對象,以及ASP 提供的ActiveX 組件的對象、方法和屬性,當然紮實的腳本語言編寫能力也是必須的。在今後的文章中小編將用五到六篇的篇幅著重介紹這些內置對象和組件的作用及使用方法,敬請關注。