Källkoden för /anders.enges/asp/ex4.asp

<!--#include file="../inc/navstuff.asp" -->
Enklaste sättet att kontrollera browsern är med hjälp av kod liknande nedanstående.
(Den kontrollerar inte alla browsertyper, men verkar vara tillräckligt noga)<br>
<div class=code><br>
<span class=asp>
<%<br>
' Funktionen returnerar IE4 eller IE3 för Internet Explorer<br>
' NS5, NS4 eller NS3 för Netscape<br>
' OTHERx där x är versionsnummer för övriga<br>
Function detectApp()<br>
    Dim app<br>
    app = Ucase( Request.ServerVariables( "HTTP_USER_AGENT" ) )<br>
    if Instr( app, "MSIE" ) Then<br>
        detectApp = "IE" & Mid( app, InStr( app, "/" ) + 1, 1 )<br>
    Else<br>
        If InStr( app, "MOZILLA" ) And InStr( app, "COMPATIBLE" ) = 0 Then<br>
            detectApp = "NS" & Mid(app, InStr(app, "/") + 1, 1)<br>
        Else<br>
            detectApp = "OTHER" & Mid(app, InStr(app, "/") + 1, 1)<br>
        End If<br>
    End If<br>
End Function<br>%></span></div><p>
Denna kan då användas på detta sätt<br>
<div class=code><br>
<span class=asp>
<% If detectApp = "IE4" then %></span><br>
Gör det som skall göras om det är Internet Explorer<br>
<span class=asp><% End If %></span><br>
<br>
</div>
<p>
Man kan även spara bara funktionskoden i en separat fil. Om denna fil heter
<b>whatbrowser.asp</b> kan man då använda den på följande sätt<br>
<div class=code><br>
<FONT COLOR=#006400><!--#include file="whatbrowser.asp" --></font><p>
<span class=asp>
<% If detectApp = "IE4" then %></span><br>
Gör det som skall göras om det är Internet Explorer<br>
<span class=asp><% End If %></span><br>
<br>
</div><p>
En annan variant<div class=code>
<span class=asp><%<br>
' Funktionen returnerar IE för Internet Explorer<br>
' NS för Netscape<br>
' OTHER där övriga<br>
Function appName()<br>
    Dim app<br>
    app = Ucase( Request.ServerVariables( "HTTP_USER_AGENT" ) )<br>
    if Instr( app, "MSIE" ) Then<br>
        appName = "IE"<br>
    Else<br>
        If InStr( app, "MOZILLA" ) And InStr( app, "COMPATIBLE" ) = 0 Then<br>
            appName = "NS" <br>
        Else<br>
            appName = "OTHER"<br>
        End If<br>
    End If<br>
End Function<br>
<br>
' Funktionen returnerar versionsnumret<br>
Function appVersion()<br>
    Dim app<br>
    app = Ucase( Request.ServerVariables( "HTTP_USER_AGENT" ) )<br>
    appVersion = Mid( app, InStr( app, "/" ) + 1, 1 )<br>
End Function<br>%></span></div><p>

Man kan även använda nedanstående metod men den kräver en FÄRSK browcap.ini för
att fungera eftersom den inte klarar av nyare browsers som inte finns i filen<p>
Ibland kan det vara intressant att veta lite mera om klientens browser.
Om denna inte stöder JavaScript eller frames kommer detta att inverka på vad vi
kan sända åt klienten.<p>
I ASP finns en möjlighet att kontrollera lite basfakta om klienten.<p>
Detta kan ske med en <b>Browser Capabilities Component</b><p>
OBS! Denna komponent förutsätter att det finns en fil med namnet <b>browscap.ini</b>,
samt en fil med namet <b>browscap.dll</b> i <br>
<NT's hemkatalog>\system32\inetsrv\ASP\Cmpnts<p>
Var den finns i Win95 vet jag inte men gör en sökning efter <b>browscap.ini</b> och se var den finns.<p>
Ini filen måste uppdateras vartefter det kommer nya browsers. En rätt färsk fil finns att få
<a href="browscap.ini">här</a>
<p>
Exempel på detta:<hr>
<div class=code>
<span class=asp><%   Set bc = Server.CreateObject("MSWC.BrowserType") %></span>   <BR>
<table border=1> <BR>
<tr><td>Browser</td><td> <span class=asp><%= bc.browser %></span>   <BR>
<tr><td>Version</td><td> <span class=asp><%= bc.version %></span>   </td></TR> <BR>
<tr><td>Majorver</td><td> <span class=asp><%= bc.majorver %></span>   </td></TR> <BR>
<tr><td>Minorver</td><td> <span class=asp><%= bc.minorver %></span>   </td></TR> <BR>

<tr><td>Frames</td><td><BR>
<span class=asp><%   if (bc.frames = TRUE) then %></span>   Ja<BR>
<span class=asp><%   else %></span>   Nej<BR>
<span class=asp><%   end if %></span>  </td></TR> <BR>

<tr><td>Tabeller</td><td><BR>
<span class=asp><%   if (bc.tables = TRUE) then %></span>   Ja <BR>
<span class=asp><%   else %></span>  Nej<BR>
<span class=asp><%   end if %></span>  </td></TR> <BR>

<tr><td>Bakgrundsljud</td><td> <BR>
<span class=asp><%   if (bc.BackgroundSounds = TRUE) then %></span>   Ja <BR>
<span class=asp><%   else %></span>  nej<BR>
<span class=asp><%   end if %></span>  </td></TR> <BR>

<tr><td>VBScript</td><td> <BR>
<span class=asp><%   if (bc.vbscript = TRUE) then %></span>   Ja <BR>
<span class=asp><%   else %></span>  Nej<BR>
<span class=asp><%   end if %></span>  </td></TR> <BR>

<tr><td>JScript</td><td> <BR>
<span class=asp><%   if (bc.javascript = TRUE) then %></span>   Ja <BR>
<span class=asp><%   else %></span>  Nej<BR>
<span class=asp><%   end if %></span>  </td></TR> <BR>

<tr><td>Java</td><td> <BR>
<span class=asp><%   if (bc.javaapplets = TRUE) then %></span>   Ja <BR>
<span class=asp><%   else %></span>  Nej<BR>
<span class=asp><%   end if %></span>  </td></TR> <BR>

<tr><td>ActiveX</td><td> <BR>
<span class=asp><%   if (bc.ActiveXControls = TRUE) then %></span>   Ja <BR>
<span class=asp><%   else %></span>  Nej<BR>
<span class=asp><%   end if %></span>  </td></TR> <BR>
</table>
</div><br><br>
<div class=res>
Som resulterar i följande: (Vad som kan kollas beror på ini filen)<hr>
<%   Set bc = Server.CreateObject("MSWC.BrowserType") %>  
<table border=1>
<tr><td>Browser</td><td> <%= bc.browser %>  
<tr><td>Version</td><td> <%= bc.version %>   </td></TR>
<tr><td>Majorver</td><td> <%= bc.majorver %>   </td></TR>
<tr><td>Minorver</td><td> <%= bc.minorver %>   </td></TR>
<tr><td>Frames</td><td>
<%   if (bc.frames = TRUE) then %>   Ja
<%   else %>   Nej
<%   end if %>  </td></TR>
<tr><td>Tabeller</td><td>
<%   if (bc.tables = TRUE) then %>   Ja
<%   else %>  Nej
<%   end if %>  </td></TR>
<tr><td>Bakgrundsljud</td><td>
<%   if (bc.BackgroundSounds = TRUE) then %>   Ja
<%   else %>  nej
<%   end if %>  </td></TR>
<tr><td>VBScript</td><td>
<%   if (bc.vbscript = TRUE) then %>   Ja
<%   else %>  Nej
<%   end if %>  </td></TR>
<tr><td>JScript</td><td>
<%   if (bc.javascript = TRUE) then %>   Ja
<%   else %>  Nej
<%   end if %>  </td></TR>
<tr><td>Java</td><td>
<%   if (bc.javaapplets = TRUE) then %>   Ja
<%   else %>  Nej
<%   end if %>  </td></TR>
<tr><td>ActiveX</td><td>
<%   if (bc.ActiveXControls = TRUE) then %>   Ja
<%   else %>  Nej
<%   end if %>  </td></TR>
</table>
</div>
<p>
I praktiken används denna funktion på detta sätt:<hr>
<div class=code>
<span class=asp><% Set bc = Server.CreateObject("MSWC.BrowserType") <br>
if (bc.ActiveXControls = TRUE) then %></span><br>
  Här kan vi således sätta in en ActiveX kontroll<br>
<span class=asp><% else <br>
  if (bc.javaapplets = TRUE) then %></span><br>
    Vi använder en Java kontroll istället<br>
  <span class=asp><% else %></span><br>
    Måste använda någon annan metod <br>
<span class=asp><% end if %></span></div><p>

Om man ofta måste kontrollera vilken browser som används kan det löna sig att
utföra detta en gång i <b>global.asa</b>:<hr>
<div class=code>
<font color="#0000ff"><SCRIPT LANGUAGE="VBScript" RUNAT="Server"><br>
Sub Session_OnStart<br>
  Set bc = Server.CreateObject("MSWC.BrowserType")<br>
  If bc.browser = "Unknown" then<br>
    Session("ActiveXControls") = 0<br>
    Session("javaapplets") = 0<br>
    Session("javascript") = 0<br>
    Session("majorver") = 1<br>
    Session("frames") = 0<br>
    Session("browser") = "Unknown"<br>
  else<br>
    Session("ActiveXControls") = bc.ActiveXControls<br>
    Session("javaapplets") = bc.javaapplets<br>
    Session("javascript") = bc.javascript<br>
    Session("majorver") = bc.majorver<br>
    Session("frames") = bc.frames<br>
    Session("browser") = bc.browser<br>
  end if<br>
End Sub<br></span></font>
</div>
<p>
Vi kan då använda följande kod istället:<hr>
<div class=code>
<span class=asp><% <br>
if (Session("ActiveXControls") = TRUE) then %></span><br>
  Här kan vi således sätta in en ActiveX kontroll<br>
<span class=asp><% else <br>
  if (Session("javaapplets") = TRUE) then %></span><br>
    Vi använder en Java kontroll istället<br>
  <span class=asp><% else %></span><br>
    Måste använda någon annan metod <br>
<span class=asp><% end if %></span>
</div>
<!--#include file="../inc/footer.asp" -->