webForumDet fria alternativet

http_user_agent - Opera tror han är IE

ASP

5 svar · 327 visningar · startad av kolas

Medlem sedan mars 2001142 inlägg
Frågan#1

Med denna kod så tror Opera att han är IE, hur kommer man runt så att man kan skriva ut nå´t ENBART för IE?

If instr(lcase(Request.ServerVariables("HTTP_USER_AGENT")), lcase("msie")) > 0 Then 
response.write "endast Explorer"
else
response.write "alla andra läsare"
end if
Medlem sedan mars 20025 907 inlägg
#2

Rätta mig om jag har fel nu, men har inte Opera en inbyggd funktion för att "identifiera" sig som just IE? Då kommer user_agent-strängen vara identisk för både IE och Opera...

Medlem sedan maj 200010 687 inlägg
#3

Det går inte att förlita sig på USER_AGENT för att identifiera webbläsare.

Medlem sedan mars 2001142 inlägg
#4

Jo det är väl nå´t sånt att den identifierar sig som IE, Opera skriver ut:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Opera 7.51 [en]

och IE:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; (R1 1.5); .NET CLR 1.1.4322)

Men hur kan man göra smartast och relativt säkert för att skilja dem åt?

Medlem sedan maj 200125 inlägg
#5

Så här kanske..

If instr(lcase(Request.ServerVariables("HTTP_USER_AGENT")), lcase("msie")) > 0 and instr(lcase(Request.ServerVariables("HTTP_USER_AGENT")), lcase("opera")) < 0  Then 
response.write "endast Explorer"
else
response.write "alla andra läsare"
end if

/Pelle

Medlem sedan mars 2001142 inlägg
#6

Löste det på ett annat sätt:

Function getBrowser()
	Dim Browser, ua
	
	ua = Request.ServerVariables("HTTP_USER_AGENT")
	
	If Instr(ua, "Opera") Then
		Browser = "Opera"	
	ElseIf Instr(ua, "MSIE") Then
		If Instr(ua, "MSIE 6.") Then
			Browser = "background-attachment: fixed;"
		ElseIf Instr(ua, "MSIE 5.") Then
			Browser = "background-attachment: fixed;"
		ElseIf Instr(ua, "MSIE 4.") Then
			Browser = "background-attachment: fixed;"
		ElseIf Instr(ua, "MSIE 3.") Then
			Browser = ""
			If Instr(ua, "MSIE 3.02") Then
				Browser = ""
			End If
		Else
			Browser = ""
		End If
	ElseIf Instr(ua, "Mozilla") and Instr(ua, "compatible") = 0 Then
		If Instr(ua, "Netscape6") Then
			Browser = ""
		ElseIf Instr(ua, "Mozilla/4") Then
			Browser = ""
		ElseIf Instr(ua, "Mozilla/3") Then
			Browser = ""
		Else
			Browser = ""
		End If
	End If
	
	getBrowser = Browser
End Function
256 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)