27. februar 2003 - 23:41Der er
20 kommentarer og 1 løsning
Hvordan checker jeg om browser er IE til Mac?
Jeg har brug for at checke om browser er en Internet Explorer Mac version. Jeg har dette script som checker version, men ikke styresystem. Hvordan fikser man det?:
<% If InStr(Request.ServerVariables("HTTP_USER_AGENT"), "MSIE") >= 5 Then %> <!--#include virtual="/2003/include/navi.asp" --> <% End If %><br> <% If InStr(Request.ServerVariables("HTTP_USER_AGENT"), "MSIE") < 5 Then %> <!--#include virtual="/2003/include/navi_2.asp" --> <% End If %>
Jeg skal include den sidste fil hvis der er tale om en mac.
De fleste virksomheder har efterhånden bevist, at AI virker.
Pilotprojekter leverer resultater. Medarbejdere bruger generative AI-værktøjer. Nye use cases dukker op på tværs af organisationen.
blnIE = (instr(strAgent,"IE")) > 0 if (blnIE) then blnWebTV = (instr(strAgent,"WebTV")) > 0 blnOpera = (instr(strAgent,"Opera")) > 0 else blnGecko = (instr(strAgent,"Gecko")) > 0 blnLynx = (instr(strAgent,"Lynx")) > 0 blnNS = not (blnLynx and blnGecko) end if
if (blnIE and blnOpera) then strBrowserType = "Opera" elseif (blnLynx) then strBrowserType = "Lynx" elseif (blnIE and blnWebTV) then strBrowserType = "WebTV" elseif (blnGecko) then strBrowserType = "Mozilla/Gecko" elseif (blnNS) then strBrowserType = "Netscape" else strBrowserType = "Internet Explorer" end if
blnWin = (instr(strAgent,"Win")) > 0 blnMac = (instr(strAgent,"Mac")) > 0 blnNix = (instr(strAgent,"Linux")) > 0 if (blnWin) then strOStype = "Windows" call Win() elseif (blnMac) then strOStype = "Macintosh" call Mac() elseif (blnLinux) then strOStype = "Linux" call Linux() else strOStype = "Unknown OS" call Mac() end if %>
<% sub Win() %> <link rel="stylesheet" href="win.css" type="text/css"> </head> <html> <body alink="#800000" link="#000080" vlink="#800080" text="#000000" bgcolor="#000000"> <table width="75%" border="0" cellspacing="0" cellpadding="10" bgcolor="#9999FF" align="center"> <tr><td colspan="2" align="center"> <img src="win.gif" alt="Borg of MS"> </td></tr> <% end sub %>
<% If InStr(Request.ServerVariables("HTTP_USER_AGENT"), "MSIE") >= 5 Then If InStr(Request.ServerVariables("HTTP_USER_AGENT"), "PowerPC")>0 Then ' Mac %><!--#include virtual="/2003/include/navi_2.asp" --><% Else ' PC %><!--#include virtual="/2003/include/navi.asp" --><% End If End If %>
mortrr >> Det ser rigtigt ud, men desværre er det ikke nok. Jeg har brug for at denne funktion også virker: <% If InStr(Request.ServerVariables("HTTP_USER_AGENT"), "MSIE") >= 5 Then %> ><!--#include virtual="/2003/include/navi.asp" --><% End If %><br>
<% If InStr(Request.ServerVariables("HTTP_USER_AGENT"), "MSIE") < 5 Then %> ><!--#include virtual="/2003/include/navi_2.asp" --> <% End If %>
Altså: Hvis browser er IE PC 5+ skal den include navi.asp Ellers :include navi_2.asp.
Kan det se ud som det her: <% If InStr(Request.ServerVariables("HTTP_USER_AGENT"), "MSIE") >= 5 Then %> <!--#include virtual="/2003/include/navi.asp" --> <%Else ' PC %><!--#include virtual="/2003/include/navi_2.asp" --><% End If %> Jeg kan ikke checke det i mac, derfor spørger jeg...
Den kontrol du laver tester ikke om versionen er >=5, men om der står MSIE i strengen, på position 5 eller større, så jeg gik ud fra at du kun ville teste på om det var IE.
Hvis du også vil have versionen med, kan man kigge på tegnet efter MSIE. User Agent vil som regel for MSIE stå som fx "MSIE 5" (det er nu langfra sikkert, da man kan skrive hvad som helst i "sin" useragent, men så er det jo ens egen skyld).
Så kig efter om det er IE og version, med fx: isIE=false userAgent=cStr(Request.ServerVariables("HTTP_USER_AGENT")) MajorVersion=0 if inStr(userAgent,"MSIE")>0 then isIE=true if isNumeric(mid(userAgent,instr(userAgent,"MSIE")+5,1) then MajorVersion=cInt(mid(userAgent,instr(userAgent,"MSIE")+5,1)) end if end if
Herefter kan du kigge på om det er en Mac: if instr(userAgent,"PowerPC")>0 then isMac=true else if instr(userAgent,"Macintosh")>0 then isMac=true end if end if
Så kan du sende de sider du har brug for.
<% If isMSIE AND majorVersion >= 5 Then ' PC version >=5 %><!--#include virtual="/2003/include/navi.asp" --><% Else %><!--#include virtual="/2003/include/navi_2.asp" --><% End If %>
Hvis du også vil have en kontrol for om det er en Mac, kan du udvide den.
Den skulle vise navi.asp hvis det er PC og >=5 men ikke hvis det er en Mac ? <% If isMSIE AND majorVersion >= 5 AND NOT isMac Then ' PC version >=5 %><!--#include virtual="/2003/include/navi.asp" --><% Else %><!--#include virtual="/2003/include/navi_2.asp" --><% End If %>
OK timeout. Jeg ved ikke helt hvor dette ender efterhånden, så inden du går helt amok så check det her: Der er to includefiler. includefil 1 skal vises hvis IE 5+ Windows. Ved ALLE andre skal includefil 2 vises...
Så ser det således ud? Den giver fejl i linie 6: Microsoft VBScript compilation error '800a03ee'
Expected ')'
/2003/include/include_navi.asp, line 6
if isNumeric(mid(userAgent,instr(userAgent,"MSIE")+5,1) then --------------------------------------------------------^
<% isIE=false userAgent=cStr(Request.ServerVariables("HTTP_USER_AGENT")) MajorVersion=0 if inStr(userAgent,"MSIE")>0 then isIE=true if isNumeric(mid(userAgent,instr(userAgent,"MSIE")+5,1) then MajorVersion=cInt(mid(userAgent,instr(userAgent,"MSIE")+5,1)) end if end if
Herefter kan du kigge på om det er en Mac: if instr(userAgent,"PowerPC")>0 then isMac=true else if instr(userAgent,"Macintosh")>0 then isMac=true end if end if %> <% If isMSIE AND majorVersion >= 5 AND NOT isMac Then ' PC version >=5 %><!--#include virtual="/2003/include/navi.asp" --><% Else %><!--#include virtual="/2003/include/navi_2.asp" --><% End If %>
SUPER. Det ser ud til at virke. Jeg har dog ikke kune teste det på mac som sagt. Når jeg derimod tester den i Opera, så viser den include navi.asp, skulle det ikke være navi_2.asp da det jo ikke er IE?? Er det fordi vi checker på versionsnummer > end 5? Opera er vers. 7.0
if inStr(userAgent,"MSIE")>0 then isIE=true if isNumeric(mid(userAgent,instr(userAgent,"MSIE")+5,1)) then MajorVersion=cInt(mid(userAgent,instr(userAgent,"MSIE")+5,1)) end if end if
if inStr(userAgent,"Opera")>0 then isOpera=true isIE=false if isNumeric(mid(userAgent,instr(userAgent,"Opera")+6,1)) then MajorVersion=cInt(mid(userAgent,instr(userAgent,"Opera")+6,1)) end if end if if instr(userAgent,"PowerPC")>0 then isMac=true else if instr(userAgent,"Macintosh")>0 then isMac=true end if end if
If isIE AND majorVersion >= 5 AND Not isMac Then %><!--#include virtual="/2003/include/navi.asp" --><% Else %><!--#include virtual="/2003/include/navi_2.asp" --><% End If
Det kunne være man skulle få skrevet en fult useragent parser.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.