如何判斷瀏覽器版本,從指令碼

請注意--重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,且可能由 Microsoft Community 利用 Community Translation Framework技術或人工進行事後編修。翻譯過程並無專業譯者參與。Microsoft 同時提供使用者人為翻譯、機器翻譯及社群編修後的機器翻譯三種版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,所有翻譯文章都可能不盡完美,內容都可能出現詞彙、語意或文法上的錯誤。就翻譯內容之不正確或錯誤,或客戶因使用翻譯內容所產生的任何損害,微軟不負擔任何責任。Microsoft將依合理的商業努力不斷地更新機器翻譯軟體和工具,以期能為使用者提供更好的服務。

按一下這裡查看此文章的英文版本:167820
依現狀不再更新的知識庫內容免責聲明
本文旨在說明 Microsoft 不再提供支援的產品。因此,本文係依「現狀」提供,不會再更新。
結論
Internet Explorer 4.0 所提供的新功能,可能會 bedesirable determinethe 瀏覽器版本、 用戶端和伺服器端指令碼,讓 Web 應用程式可以採取利用 ofnew 的功能,或惡化,視 thecurrently 執行瀏覽器的版本而定。

重要︰ 本文中所使用的方法依賴接收正確的"HTTP_USER_AGENT"字串,連線到網站的瀏覽器的網站。部分 proxy 伺服器和瀏覽器可能會傳送不正確或難以解譯的資訊。例如,[作業 5.12 [傳回的預設 HTTP_USER_AGENT 字串是"Mozilla/4.0 (相容;MSIE 5.0;<operating system="">) [作業 5.12 [en]"。這個字串是難以解譯,因為字串的第一個部分是 Internet Explorer 5 所傳回的字串相同。

如果您需要唯一識別 [Internet Explorer 5 或更新版本 (Microsoft Win32 和 Unix 平台只) 的版本,請使用isComponentInstalledgetComponentVersion CLIENTCAPS 行為的方法。如需有關這些方法的資訊,請參閱下列 Microsoft 網站︰</operating>附註︰ 如果用戶端在 Internet Explorer 5 或更新版本 (Microsoft Win32 和 Unix 平台只) 不是,這些方法將會失敗。
其他相關資訊

從用戶端指令碼

下列的 JScript 函式可以用於判斷它從用戶端指令碼執行的 thebrowser 版本。函式會在大多數的目前可用的瀏覽器上執行,並傳回任何 Microsoft Internet Explorer 瀏覽器中,以及零 (0) 供其他人的 majorversion 號。使用這個函式,可確保指令碼會 compatiblewith 的 Internet Explorer 的未來版本。
   // This function returns Internet Explorer's major version number,   // or 0 for others. It works by finding the "MSIE " string and   // extracting the version number following the space, up to the decimal   // point, ignoring the minor version number   <SCRIPT LANGUAGE="JavaSCRIPT">   function msieversion()   {      var ua = window.navigator.userAgent      var msie = ua.indexOf ( "MSIE " )      if ( msie > 0 )      // If Internet Explorer, return version number         return parseInt (ua.substring (msie+5, ua.indexOf (".", msie )))      else                 // If another browser, return 0         return 0   }   </SCRIPT>				
指令碼時檢查版本號碼,應該永遠使用 > = 運算子,而不是 = 運算子,以確保與未來版本的相容性。特別舉個例說,檢查等於"MSIE 3,"的使用者代理的現有指令碼應該變更為使用 >,這樣,以及指令碼識別的 Internet Explorer 4.0 = 運算子。

下列範例會示範如何偵測從 aclient 端指令碼的瀏覽器版本。請注意,本範例將不會特別檢查 forplatform 版本,例如 Windows 95、 Windows NT、 Windows 3.1 等項目,需要不同的使用者代理子字串核取時適用︰
<SCRIPT LANGUAGE="javascript">   if ( msieversion() >= 4 )      document.write ( "This is Internet Explorer 4 or later" );   else if ( msieversion() >= 3 )      document.write ( "This is Internet Explorer 3" );   else      document.write ( "This is another browser" );   </SCRIPT>				

從伺服器端指令碼

附註︰ 可使用Request.ServerVariables("HTTP_USER_AGENT")方法,以便在伺服器端指令碼中的BrowserType物件。如需更多詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
272413 如何判斷瀏覽器中的型別沒有 BrowserType 物件的伺服器端指令碼
進入動態伺服器網頁 (ASP) 的瀏覽器能力元件會提供您 theclient 的 Web 瀏覽器功能描述的指令碼,藉由比較使用者代理 HTTP 標頭,以在 BROWSCAP 的 theentries。INI 檔案。為了讓新的 Internet Explorer 4.0 功能的 detectthe 瀏覽器支援 ASP 應用程式,將複製 thelatest BROWSCAP。INI 從下列 Cyscape 網站︰請將它複製到 %windows%\system32\inetsrv\asp\cmpnts 目錄和 executea 伺服器端指令碼類似下列的範例。

本範例特別會善用新的動態 HTML functionalityif,目前的瀏覽器是 Internet Explorer 4.0 或更新版本︰
<HTML><BODY>   <%  Set bc = Server.CreateObject("MSWC.BrowserType") %>   <table border=0 cellspacing="0" cellpadding="5">      <tr>         <% If bc.browser = "IE" and bc.version >= 4 Then %>         <td><a href="chocolate.htm" TARGET="_TEXT"              onmouseover="this.style.color='red'"              onmouseout="this.style.color='purple'">chocolate</a>         </td>         <% Else %>            <td><a href="chocolate.htm" TARGET="_TEXT">chocolate</a></td>         <% End If %>         <td>|</td>         <% If bc.browser = "IE" and bc.version >= 4 Then %>         <td><a href="vanilla.htm" TARGET="_TEXT"              onmouseover="this.style.color='red'"              onmouseout="this.style.color='purple'">vanilla</a>         </td>         <% Else %>            <td><a href="vanilla.htm" TARGET="_TEXT">vanilla</a></td>         <% End If %>      </tr>   </table></BODY></HTML>				
参考
動態伺服器網頁 (ASP) 藍圖中的元件參考
偵測確認檢查

警告:本文為自動翻譯

属性

文章 ID:167820 - 上次审阅时间:07/04/2016 00:52:00 - 修订版本: 2.0

  • kbFAQ kbhowto kbscript kbmt KB167820 KbMtzh
反馈