本篇將繼續(xù)介紹一些用 ASP 編寫的WEB 動(dòng)態(tài)功能。由于 WEB 瀏覽器標(biāo)準(zhǔn)的不一致從而使得如何能夠讓自己制作的網(wǎng)站去適應(yīng)各種不同的瀏覽器成為了廣大網(wǎng)站設(shè)計(jì)者最為頭疼的事,在如今的形勢(shì)之下,我們不肯也不可能去拋棄Netscape 或 IE 中的任何一種客戶群,但我們有時(shí)候又不得不去考慮客戶端瀏覽器的實(shí)際瀏覽效果,過去我們常用JavaScript 編寫一段程序來辨別客戶端使用的不同的瀏覽器,那么今天就讓我們來看看如何使用ASP 更為便捷且精確地達(dá)到這一目的。將以下代碼,剪貼到你的Notebook 中,并保存為browser.asp 。
%@ LANGUAGE = VBScript %>
HTML>
HEAD>
TITLE>用ASP提供的瀏覽器性能組件來辨別客戶瀏覽器 /TITLE>
/HEAD>
BODY BGCOLOR="White" topmargin="10" leftmargin="10">
font size="4" face="Arial, Helvetica">
b>用ASP提供的瀏覽器性能組件來辨 br>別客戶瀏覽器 /b> /font> br>
hr size="1" color="#000000">
!-- 定義并創(chuàng)建瀏覽器性能對(duì)象 -->
%
Dim bc
Set bc = Server.CreateObject("MSWC.BrowserType")
%>
!-- 在表格中描述客戶瀏覽器的信息 -->
Table border=1>
tr>
td>Browser Name /td>
td> %=bc.Browser %> /Td>
tr>
td>Browser Version /td>
td> %=bc.Version %> /Td>
tr>
td>Major Version /td>
td> %=bc.Majorver %> /Td>
tr>
td>Minor Version /td>
td> %=bc.Minorver %> /Td>
tr>
td>Frame Support /td>
td> %=bc.Frames %> /Td>
tr>
td>Table Support /td>
td> %=bc.Tables %> /Td>
tr>
td>Cookie Support /td>
td> %=bc.Cookies %> /Td>
tr>
td>Background Sound Support /td>
td> %=bc.BackgroundSounds %> /Td>
tr>
td>VBScript Support /td>
td> %=bc.VBScript %> /Td>
tr>
td>JavaScript Support /td>
td> %=bc.JavaScript %> /Td>
/table>
/BODY>
/HTML>
用http 方式瀏覽該文件,根據(jù)使用的瀏覽器的不同,你會(huì)看到類似下圖 (Asp2b.gif) 的頁面。在本例中我們用到了一個(gè) ASP 提供的 ActiveX 組件 --"Browser Capabilities" 。 ActiveX 組件作為基于 Web 的應(yīng)用程序部分在 Web 服務(wù)器上運(yùn)行,組件提供了應(yīng)用程序的主要功能 ( 如訪問、修改數(shù)據(jù)庫等 ) ,這樣 WEB 設(shè)計(jì)者們就不必創(chuàng)建或重新創(chuàng)建執(zhí)行這些任務(wù)的代碼,從而提高了工作的效率,有關(guān) ActiveX 組件將在今后詳細(xì)討論。為了使用 ASP 辨別客戶瀏覽器,在這里我們利用 "Browser Capabilities" 組件創(chuàng)建了一個(gè) Browser Type 對(duì)象,該對(duì)象提供帶有客戶端網(wǎng)絡(luò)瀏覽器功能說明的用戶腳本,當(dāng)瀏覽器連接到網(wǎng)絡(luò)服務(wù)器上時(shí),它會(huì)自動(dòng)發(fā)送一個(gè) UserAgentHTTP 標(biāo)題,該標(biāo)題是一個(gè)聲明瀏覽器及其版本的 ASCII 字符串。此 Browser Type 對(duì)象將該標(biāo)題和在 Browscap.ini 文件中的項(xiàng)進(jìn)行比較 (Win98 、 IIS3 、 IIS4 的用戶分別可以在以下目錄中 "win98\system\inersrv" 、 "\winnt\system32\inetsrv\asp\cmpnts" 、 "\winnt\system32\inetsrv" 找到該文件 ) 。如果找到匹配的項(xiàng),則該 Browser Type 對(duì)象將認(rèn)為瀏覽器列表屬性與 UserAgent 標(biāo)題匹配。若該對(duì)象在 browscap.ini 文件中找不到與該標(biāo)題匹配的項(xiàng),那么將使用默認(rèn)的瀏覽器屬性。若該對(duì)象既未找到匹配項(xiàng)且 browscap.ini 文件中也未指定默認(rèn)的瀏覽器設(shè)置,則它將每個(gè)屬性都設(shè)為字符串 "UNKNOWN" 。我們可以通過更新 browscap.ini 文件將屬性或新的瀏覽器定義添加到該組件中,從而擴(kuò)大 ASP 識(shí)別的瀏覽器范圍和精確度。下面列出了 browscap.ini 中的一部分內(nèi)容 ( 不包括注釋部分 ) :
[IE 4.0] ;;HTTPUserAgentHeader
browser=IE ;;指定該瀏覽器的名稱。
Version=4.0 ;;指定該瀏覽器的版本號(hào)。
majorver=4 ;;指定主版本號(hào)
minorver=0 ;;指定副版本號(hào)
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 ;;指定該瀏覽器是否測(cè)試版。
cdf=True ;;指定該瀏覽器是否 支持用于 Web 預(yù)測(cè)的 Channel Definition Format。
;;ie 4.01
[Mozilla/4.0 (compatible; MSIE 4.01*; Windows 95)]
parent=IE 4.0 ;;父標(biāo)簽允許第二個(gè)瀏覽器繼承第一個(gè)瀏覽器的定義
version=4.01
minorver=01
platform=Win98
;;Default Browser ;;指定默認(rèn)的瀏覽器的設(shè)置
[Default Browser Capability Settings]
browser=Default
frames=FALSE
tables=TRUE
cookies=FALSE
backgroundsounds=FALSE
vbscript=FALSE
javascript=FALSE
在上面的例子中,父標(biāo)簽允許第二個(gè)瀏覽器繼承第一個(gè)瀏覽器的定義,以便 Microsoft Internet Explorer4.01 定義得以繼承 Microsoft Internet Explorer4.0 定義全部的屬性 ( 例如, frames=TRUE 、 tables=TRUE 以及 cookies=TRUE) 。并通過添加 platform=Win98 行來指定平臺(tái),用 version=4.01 重寫版本信息。
在先前的 browser.asp 中我們僅僅是將客戶瀏覽器的屬性一一羅列了出來,下面讓我們添加一些動(dòng)態(tài)的效果。將以下代碼剪貼到文件 browser.asp 中( 編輯注 :為顯示方便,所有“ ”符號(hào)后都多加了個(gè)空格,實(shí)際使用時(shí)請(qǐng)注意去掉。 ):
% if (bc.frames = TRUE) then %>
你的瀏覽器支持框架! br>
% else %>
難道現(xiàn)在你還在使用不支持框架的瀏覽器??? br>
% end if %>
% if (bc.tables = TRUE) then %>
你的瀏覽器支持表格。 br>
% else %>
難道現(xiàn)在你還在使用不支持表格 的瀏覽器 ??? br>
% end if %>
% if (bc.BackgroundSounds = TRUE) then %>
有沒有聽到美妙的 音樂??? br>
% else %>
可惜 , 您的瀏覽器不支持背 景音樂。 br>
% end if %>
% if (bc.vbscript = TRUE) then %>
您的瀏覽器支持Vbscript。 br>
% else %>
您的瀏覽器不支持Vbscrip。 br>
% end if %>
% if (bc.javascript = TRUE) then %>
您的瀏覽器支持 Javascript。 br>
% else %>
您的瀏覽器不支持 Javascript。 br>
% end if %>
在你的瀏覽器中刷新 browser.asp ,程序?qū)⒆詣?dòng)辨別瀏覽器的屬性并動(dòng)態(tài)顯示不同的信息。不難發(fā)現(xiàn)在整個(gè) browser.asp 文件中幾乎沒有用到任何復(fù)雜的編程,就輕而易舉的達(dá)到了動(dòng)態(tài)鑒別客戶瀏覽器并動(dòng)態(tài)產(chǎn)生響應(yīng)事件的效果。事實(shí)上,這個(gè)程序的關(guān)鍵就在于前文提到的 ActiveX 組件 --"Browser Capabilities" ,它的作用類似于一個(gè) Function ,只需簡(jiǎn)單地在程序中調(diào)用該組件即能達(dá)到你所希望的效果。
通過這兩篇對(duì)ASP 的介紹,大家已經(jīng)看到編寫ASP 程序是相當(dāng)輕松的,要掌握 ASP ,無非就是掌握 ASP 內(nèi)置的五個(gè)對(duì)象,以及ASP 提供的ActiveX 組件的對(duì)象、方法和屬性,當(dāng)然扎實(shí)的腳本語言編寫能力也是必須的。在今后的文章中小編將用五到六篇的篇幅著重介紹這些內(nèi)置對(duì)象和組件的作用及使用方法,敬請(qǐng)關(guān)注。
您可能感興趣的文章:- ASP.net基礎(chǔ)知識(shí)之常見錯(cuò)誤分析
- ASP.NET 2.0 程序安全的基礎(chǔ)知識(shí)
- 服務(wù)器XMLHTTP(Server XMLHTTP in ASP)基礎(chǔ)知識(shí)
- ASP.NET母版頁基礎(chǔ)知識(shí)介紹
- ASP基礎(chǔ)知識(shí)Command對(duì)象講解
- ASP基礎(chǔ)知識(shí)VBScript基本元素講解
- ASP新手必備的基礎(chǔ)知識(shí)