webForumDet fria alternativet

Vattentät webbläsarkoll

ASP

23 svar · 412 visningar · startad av Erik Juhlin

Medlem sedan maj 200010 687 inlägg
Frågan#1

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!

Någon som kan hjälpa mig?

------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/

[Redigerat av Erik Juhlin den 03 mar 2001]

Medlem sedan juni 200032 967 inlägg
#2

du hittar all information du behöver i servervariabeln http_user_agent. os/webbläsare/version, osv. analysera den och du kan få det ganska vattentätt.

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>

Medlem sedan maj 200010 687 inlägg
#3

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! :)

------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/

Medlem sedan maj 200010 687 inlägg
#4

@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?

------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/

[Redigerat av Erik Juhlin den 03 mar 2001]

Medlem sedan juni 200032 967 inlägg
#5

om någon mixtrar så får de väl skylla sig själva...

jag har nåt litet script som jag tror löser det mesta för dig, men jag vet inte var. jag ser om jag kan hitta det och återkommer senare.

under tiden kan du ju besöka www.cyscape.com för att läsa om komponenten browserhawk.

mvh,

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>

Medlem sedan maj 200010 687 inlägg
#6

Jag tror inte Netintense är så pigga på att installera såna komponenter..
Så en annan lösning hade varit bra!

------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/

Medlem sedan dec. 19998 577 inlägg
#7

Netintense har Browscap installerat vad jag vet...

------------------
Jourhavande @e SweQuake.com

Medlem sedan feb. 20001 590 inlägg
#8

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..."

Medlem sedan maj 200010 687 inlägg
#9

Jo Toonster, det vet jag. Men som jag skrev så spelar det ingen roll hur det kodas i Opera.

Vide, hur skriver man med Browscap?

------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/

Medlem sedan dec. 19998 577 inlägg
#10

Testa detta:

Set bc = Server.CreateObject("MSWC.BrowserType")

Får du felmeddelande då går det inte... men eftersom det fungerar för mig så finns det nog på alla deras servrar...

------------------
Jourhavande @e SweQuake.com

Medlem sedan maj 200010 687 inlägg
#11

Sitter vid morsans bärbara eftersom att det sätts i en tystare fläkt i föräldrarnas dator. Men imorgon kan jag testa det när jag är i Helsingborg.

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. T.ex. i Mozilla.. :l

------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/

Medlem sedan maj 200010 687 inlägg
#12

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. :)

------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/

Medlem sedan juni 200032 967 inlägg
#13

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>

Medlem sedan okt. 20001 558 inlägg
#14
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

Medlem sedan feb. 200112 078 inlägg
#15

Ja.. att bygga kompatibla sidor är svårt.. :) Men dock så roligt. ;)
http://www.overriden.com

------------------
*Notepad.exe for president*

Medlem sedan maj 200010 687 inlägg
#16

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..

------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/

Medlem sedan maj 200010 687 inlägg
#17

Om man använder Set BC = Server.CreateObject("MSWC.BrowserType"). Ska man då stänga det? Och hur va det då man gjorde det?

------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/

Medlem sedan dec. 19998 577 inlägg
#18

Du kan sätta objektet (BC) till ingenting efter det att du använt dig färdigt av den:

Set BC = Nothing

------------------
Jourhavande @e SweQuake.com

Medlem sedan maj 200010 687 inlägg
#19

Vad säger ni om den här kodsnutten?

<%
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). :)

------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/

Medlem sedan maj 200010 687 inlägg
#20

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..

------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/

263 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)