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)
<%
' Funktionen returnerar IE4 eller IE3 för Internet Explorer
' NS5, NS4 eller NS3 för Netscape
' OTHERx där x är versionsnummer för övriga
Function detectApp()
Dim app
app = Ucase( Request.ServerVariables( "HTTP_USER_AGENT" ) )
if Instr( app, "MSIE" ) Then
detectApp = "IE" & Mid( app, InStr( app, "/" ) + 1, 1 )
Else
If InStr( app, "MOZILLA" ) And InStr( app, "COMPATIBLE" ) = 0 Then
detectApp = "NS" & Mid(app, InStr(app, "/") + 1, 1)
Else
detectApp = "OTHER" & Mid(app, InStr(app, "/") + 1, 1)
End If
End If
End Function
%>
Denna kan då användas på detta sätt
<% If detectApp = "IE4" then %>
Gör det som skall göras om det är Internet Explorer
<% End If %>
Man kan även spara bara funktionskoden i en separat fil. Om denna fil heter
whatbrowser.asp kan man då använda den på följande sätt
<!--#include file="whatbrowser.asp" -->
<% If detectApp = "IE4" then %>
Gör det som skall göras om det är Internet Explorer
<% End If %>
En annan variant
<%
' Funktionen returnerar IE för Internet Explorer
' NS för Netscape
' OTHER där övriga
Function appName()
Dim app
app = Ucase( Request.ServerVariables( "HTTP_USER_AGENT" ) )
if Instr( app, "MSIE" ) Then
appName = "IE"
Else
If InStr( app, "MOZILLA" ) And InStr( app, "COMPATIBLE" ) = 0 Then
appName = "NS"
Else
appName = "OTHER"
End If
End If
End Function
' Funktionen returnerar versionsnumret
Function appVersion()
Dim app
app = Ucase( Request.ServerVariables( "HTTP_USER_AGENT" ) )
appVersion = Mid( app, InStr( app, "/" ) + 1, 1 )
End Function
%>
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
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.
I ASP finns en möjlighet att kontrollera lite basfakta om klienten.
Detta kan ske med en Browser Capabilities Component
OBS! Denna komponent förutsätter att det finns en fil med namnet browscap.ini,
samt en fil med namet browscap.dll i
<NT's hemkatalog>\system32\inetsrv\ASP\Cmpnts
Var den finns i Win95 vet jag inte men gör en sökning efter browscap.ini och se var den finns.
Ini filen måste uppdateras vartefter det kommer nya browsers. En rätt färsk fil finns att få
här
Exempel på detta:
<% 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>
Som resulterar i följande: (Vad som kan kollas beror på ini filen)
| Browser | Default
|
| Version | 0.0 |
| Majorver | 0 |
| Minorver | 0 |
| Frames |
Nej
|
| Tabeller |
Ja
|
| Bakgrundsljud |
nej
|
| VBScript |
Nej
|
| JScript |
Nej
|
| Java |
Nej
|
| ActiveX |
Nej
|
I praktiken används denna funktion på detta sätt:
<% Set bc = Server.CreateObject("MSWC.BrowserType")
if (bc.ActiveXControls = TRUE) then %>
Här kan vi således sätta in en ActiveX kontroll
<% else
if (bc.javaapplets = TRUE) then %>
Vi använder en Java kontroll istället
<% else %>
Måste använda någon annan metod
<% end if %>
Om man ofta måste kontrollera vilken browser som används kan det löna sig att
utföra detta en gång i global.asa:
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
Sub Session_OnStart
Set bc = Server.CreateObject("MSWC.BrowserType")
If bc.browser = "Unknown" then
Session("ActiveXControls") = 0
Session("javaapplets") = 0
Session("javascript") = 0
Session("majorver") = 1
Session("frames") = 0
Session("browser") = "Unknown"
else
Session("ActiveXControls") = bc.ActiveXControls
Session("javaapplets") = bc.javaapplets
Session("javascript") = bc.javascript
Session("majorver") = bc.majorver
Session("frames") = bc.frames
Session("browser") = bc.browser
end if
End Sub
Vi kan då använda följande kod istället:
<%
if (Session("ActiveXControls") = TRUE) then %>
Här kan vi således sätta in en ActiveX kontroll
<% else
if (Session("javaapplets") = TRUE) then %>
Vi använder en Java kontroll istället
<% else %>
Måste använda någon annan metod
<% end if %>