Jag behöver en ASP kodsnutt så att min sida kodas på två sätt beronde på vilken webbläsare besökaren har. A eller B.
A Mozilla/Netscape 6 - alla operativsystem, Internet Explorer 5+ - Windows, Opera 4+ - Windows B Alla andra..
Detta ska vara ganska vattentätt. T.ex. så får inte Internet Explorer på Mac kodas efter sätt A. Om Internet Explorer 5 eller Opera 4 på Windows kodas efter sätt B gör inget. Men det är mycket viktigt att Mozilla/Netscape 6 inte kodas efter sätt B!
PS. Skulle vilja ha något som ser ut ungefär så här:
<%
If browser = "Mozilla" or browser = "Netscape 6" Then
variabel = "a"
ElseIf os = "win" and browser >= "Internet Explorer 5" Then
variabel = "a"
ElseIf os = "win" and browser >= "Opera 4" Then
variabel = "a"
Else
Variabel = "b"
EndIf
%>
Lite otydligt kanske, men jag hoppas någon kan hjälpa mig att rätta till det! :)
@nders > Kan man inte få tag på Webbläsare, webbläsarversion och OS separat ur http_user_agent?
Och vad händer om någon får för sig att mixtra med identifieringen?
Opera kan vara lite svårt att känna av, för i de tidigare versionerna anger man vilken browser som Opera ska identifieras som. Tror att from. ver 5 så identifierar den sig som Opera, och tidigare versioner som Netscape.
(inte helt hundra dock...)
/T
------------------
"Den som väntar på någon som gått behöver inte vänta längre..."
Såg att Mozilla/Netscape 6 identifierade sig som Mozilla/5.0.
Kan man då inte välja att kolla de elva första tecknen i <%Request.Servervariables("http_user_agent")%>?
Det dumma är då att sidan kodas efter sätt B i t.ex. Opera och IE på PC. Det gör inget. Men när sidan kodas efter sätt B så blir det lite mer kod och den blir mer tungladdad. Sen är det såklart roligare att följa standarden, vilket jag gör i sätt A. :)
Men jag har för mig att det funkar, men att det kan krångla i vissa webbläsare så att webbläsarversionen blir 0.
browscap är helt beroende av att filen browscap.ini är ny och intakt. kör du browscap mot en webbläsare som är nyare än den browscap.ini som ligger på servern så kommer du få allehanda konstigheter. därför är det bättre att analysera innehållet i user agent 'manuellt'.
erik: tyvärr har jag inte hittat mitt script, som jag lovade kika efter. :(
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>
Kolla = Request.ServerVariables("HTTP_USER_AGENT")
If Instr(Kolla, "Macintosh") Then
If Instr(Kolla, "MSIE") OR Instr(Kolla, "Netscape6") OR Instr(Kolla, "Gecko") Then
blablabla
Else
blablabla
End If
Else
If Instr(Kolla, "MSIE") OR Instr(Kolla, "Netscape6") OR Instr(Kolla, "Gecko") Then
blablabla
Else
blablabla
End If
End If
Kanske funkar, testa...
------------------
"I have to return some video tapes" - Patrick Bateman, American Psycho
Huh?
Hittar du en lösning på hur man få en tabell/lager att ta upp 100% på höjden. Ska funka i Netscape 3-6, IE 3-5.5, Opera, Netpositive, Icab på alla operativsystem som de webbläsarna finns..
<%
Set BC = Server.CreateObject("MSWC.BrowserType")
If Left(Request.ServerVariables("http_user_agent"), 11)="Mozilla/5.0" Then
Response.Write "Netscape 6/Mozilla"
variabel="a"
ElseIf Left(Request.ServerVariables("http_user_agent"), 9)="Opera/5.0" Then
Response.Write "Opera 5"
variabel="a"
ElseIf Instr(Request.ServerVariables("http_user_agent"), "Opera 5") Then
Response.Write "Opera 5"
variabel="a"
ElseIf Instr(Request.ServerVariables("http_user_agent"), "Opera 4") Then
Response.Write "Opera 4"
variabel="a"
ElseIf BC.Browser = "IE" And BC.Majorver <= "5" Then
Response.Write "Internet Explorer 5+"
variabel="a"
Else
Response.Write BC.Browser & " " & BC.Majorver
variabel="b"
End If
Set BC = Nothing
%>
Vill förresten tacka alla för hjälpen. @nders för alla tips, Vide för Browscap, Rossifumi för Instr() och casca för Left() (IRC). :)
Grr.. Kom på att IE på Mac inte får ha variablen A. Vad säger ni om att skriva så här då?
ElseIf BC.Browser = "IE" And BC.Majorver <= "5" And Instr(BC.Platform, "win") Or Instr(Request.ServerVariables("http_user_agent"), "win") Then
Response.Write "Internet Explorer 5+"
variabel="a"
Else
Fungerar Or både som och/eller? För finns win i både BC.Platform och i HTTP_USER_AGENT så ska det bli A..