webForumDet fria alternativet

Problem med If-sats

ASPur ASP

8 svar · 229 visningar · startad av Method

MethodMedlem sedan apr. 2001357 inlägg
#1

varför fungerar inte denna if-satsen?

<% If not INSTR(Request.ServerVariables( "HTTP_USER_AGENT" ), "MSIE 5.5") > 0 Or INSTR(Request.ServerVariables( "HTTP_USER_AGENT" ), "Mozilla/5") > 0 Or INSTR(Request.ServerVariables( "HTTP_USER_AGENT" ), "MSIE 6") > 0 Then Response.Write "onload=""init()""" End If%>

Den funkar bara när man kommer med MSIE 5.5 inte de andra MSIE 6 och Mozilla/5

Sen en annan fråga finns det något lättare sätt att göra det på, för att få ner kodmängden?

Tack på förhand

------------------
--------------
STARZINGER
Tackar & Bockar forumet rockar!
Med ett hugg faller inget träd

[Redigerat av Method den 27 sep 2001]

[Redigerat av Method den 27 sep 2001]

emissionMedlem sedan dec. 19996 721 inlägg
#2

Vad ska hända?

------------------
/emission
If you see someone without a smiley, give them your colon.

BjurisMedlem sedan juli 2001514 inlägg
#3

IE6 verifieras inte den som NS4 ? så var det i varje fall för mej tills jag uppdaterade browscap.ini.

------------------
När blir en kula ett klot?
http://www.d-sajn.net en fin sida

MethodMedlem sedan apr. 2001357 inlägg
#4

Vad ska hända?

Så här vill jag egentligen att det skall hända:

Jag kör denna kod

<% 
		userAgent = Request.ServerVariables( "HTTP_USER_AGENT" ) 
		IF INSTR( userAgent, "MSIE 5.5" ) > 0 THEN 
		Server.Execute("exclude/css_meny/meny_inc.txt")
		
		ELSEIF INSTR( userAgent, "Mozilla/5" ) > 0 THEN 
		Server.Execute("exclude/css_meny/meny_inc.txt")
		
		ELSEIF INSTR( userAgent, "MSIE 6" ) > 0 THEN 
		Server.Execute("exclude/css_meny/meny_inc.txt")
		
		ELSE 
		Response.Write "<script language=""JavaScript"" src=""exclude/jslib/menu/dhtmllib.js""></script><script language=""JavaScript"" src=""exclude/jslib/menu/navbar.js""></script><script language=""JavaScript"" src=""exclude/jslib/menu/menu.js""></script>" 

		END IF 
		%>

Den ovanstående koden känner av vilken webbläsare man kommer med, för javascript menyn fungerar inte med NN 6 och MSIE 6 därför gör jag på detta sätt för den nya menyn funkar inte i gamla webbläsare.

till javascriptet behövs denna kodsnutten i BODY-taggen

onload="init()"

Och det ända sättet jag kom fram till var den kod jag har här

<% If not INSTR(Request.ServerVariables( "HTTP_USER_AGENT" ), "MSIE 5.5") > 0 Or INSTR(Request.ServerVariables( "HTTP_USER_AGENT" ), "Mozilla/5") > 0 Or INSTR(Request.ServerVariables( "HTTP_USER_AGENT" ), "MSIE 6") > 0 Then Response.Write "onload=""init()""" End If%>

och det är för att skriva ut den kodsnutten onload="init()"

För jag får ett felmedelande när den nya menyn visas när onload="init()" ligger i body-taggen

Och min fråga var varför det bara funkar med MSIE 5.5 och inte de andra?

För den överst If-satsen funkar med menyväljaren.

Och om det går att göra på något bättre sätt.

IE6 verifieras inte den som NS4 ? så var det i varje fall för mej tills jag uppdaterade browscap.ini.

Har jag inte märkt av

Hoppas jag har gjort mig förstående vad jag vill ha ;)

Tack på förhand

Jonas

------------------
--------------
STARZINGER
Tackar & Bockar forumet rockar!
Med ett hugg faller inget träd

@ndersMedlem sedan juni 200032 969 inlägg
#5

IE6 verifieras inte den som NS4 ? så var det i varje fall för mej tills jag uppdaterade browscap.ini.

Nej, absolut inte. Om man inte använder komponenten browscap förstås. Om du analyserar en sträng på detta sätt så har browscap.ini inte med saken att göra.

Method: varför din if-sats inte gör sitt jobb ordentligt kan jag inte svara på. Jag hade dock börjat med att kolla kontrollustkrifter med Netscape 6 / IE6.

Response.write "User agent: " & request.servervariables ("http_user_agent") & "<br>" 
Response.write INSTR(Request.Servervariables("http_user_agent"), "MSIE 6") & "<br>"
Response.write INSTR(Request.Servervariables("http_user_agent"), "Mozilla/5")

Mvh,

------------------
All your base are belong to me.

MethodMedlem sedan apr. 2001357 inlägg
#6

det är inget fel på denna

<% 
userAgent = Request.ServerVariables( "HTTP_USER_AGENT" ) 
IF INSTR( userAgent, "MSIE 5.5" ) > 0 THEN 
Server.Execute("exclude/css_meny/meny_inc.txt")

ELSEIF INSTR( userAgent, "Mozilla/5" ) > 0 THEN 
Server.Execute("exclude/css_meny/meny_inc.txt")

ELSEIF INSTR( userAgent, "MSIE 6" ) > 0 THEN 
Server.Execute("exclude/css_meny/meny_inc.txt")

ELSE 
Response.Write "<script language=""JavaScript"" src=""exclude/jslib/menu/dhtmllib.js""></script><script language=""JavaScript"" src=""exclude/jslib/menu/navbar.js""></script><script language=""JavaScript"" src=""exclude/jslib/menu/menu.js""></script>" 
END IF 
%>

Det är denna if-satsen det är fel på

<% If not INSTR(Request.ServerVariables( "HTTP_USER_AGENT" ), "MSIE 5.5") > 0 Or INSTR(Request.ServerVariables( "HTTP_USER_AGENT" ), "Mozilla/5") > 0 Or INSTR(Request.ServerVariables( "HTTP_USER_AGENT" ), "MSIE 6") > 0 Then Response.Write "onload=""init()""" End If%>

Så jag vet att den känner av rätt webbläsare på den första koden jag har

------------------
--------------
STARZINGER
Tackar & Bockar forumet rockar!
Med ett hugg faller inget träd

[Redigerat av Method den 27 sep 2001]

@ndersMedlem sedan juni 200032 969 inlägg
#7

Ska du verkligen ha en not först?

------------------
All your base are belong to me.

@ndersMedlem sedan juni 200032 969 inlägg
#8

Du borde inte få ha en end if på den raden heller, eftersom hela alltet står på en rad.

Du kan ju också prova detta, sätt en kontrollvariabel, så behöver du bara göra kollen en gång.

<% 
userAgent = Request.ServerVariables( "HTTP_USER_AGENT" ) 
doInit = false
IF INSTR( userAgent, "MSIE 5.5" ) > 0 THEN 
	Server.Execute("exclude/css_meny/meny_inc.txt")
	doInit = true
ELSEIF INSTR( userAgent, "Mozilla/5" ) > 0 THEN 
	Server.Execute("exclude/css_meny/meny_inc.txt")
	doInit = true
ELSEIF INSTR( userAgent, "MSIE 6" ) > 0 THEN 
	Server.Execute("exclude/css_meny/meny_inc.txt")
	doInit = true
ELSE 
Response.Write "<script language=""JavaScript"" src=""exclude/jslib/menu/dhtmllib.js""></script><script language=""JavaScript"" src=""exclude/jslib/menu/navbar.js""></script><script language=""JavaScript"" src=""exclude/jslib/menu/menu.js""></script>" 
END IF 
%>
if doInit Then Response.Write "onload=""init()"""

Mvh,

------------------
All your base are belong to me.

MethodMedlem sedan apr. 2001357 inlägg
#9

Jippie tack anders ännu engång har du räddat mig.....;)

------------------
--------------
STARZINGER
Tackar & Bockar forumet rockar!
Med ett hugg faller inget träd

129 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)