Avatar billede djsteiner Nybegynder
27. maj 2010 - 19:16 Der er 21 kommentarer og
1 løsning

Forkellige browser

Hej jeg har et problem med et stykke kode hvor browsen gerne skulle finde frem til den rigtige css fil hvis brugeren skulle køre en gammel version af internet explorer håber dette giver mening:

altså probemet er her at den ikke går ind og finder den css fil der hedder: ie6style.css

her har i koden:



<%

strHUA = LCase (Request.Servervariables("HTTP_USER_AGENT"))

IF Instr (strHUA,"msie") Then
    strUA = "ie7style.css"

ElseIf InStr(strUserAgent, "MSIE 6")  Then
    strUA = "ie6style.css"


Else


    strUA = "style.css"

END IF

CSSDetect = strUA

%>

<link href="./css/<% = CSSDetect %>" rel="stylesheet">
Avatar billede showsource Seniormester
27. maj 2010 - 19:30 #1
strHUA er jo defineret som HTTP_USER_AGENT med små bogstaver ?

Kender ikke asp, men hvor kommer strUserAgent fra ?
Avatar billede djsteiner Nybegynder
27. maj 2010 - 20:49 #2
hej ja det kan du have ret i

jeg har lige prøvet sådan her:

ElseIf InStr(strHUA, "MSIE 6")  Then
    strUA = "ie6style.css"


uden held
Avatar billede Slettet bruger
27. maj 2010 - 23:43 #3
Peøv med denne her

<%
strHUA=lcase(request.servervariables("http_user_agent"))
if len(strHUA)<>len(replace(strHUA,"msie","")) then
strUA="ie7style.css"
elseif len(strHUA)<>len(replace(strHUA,"msie 6","")) then
strUA="ie6style.css"
else
strUA="style.css"
end if
CSSDetect=strUA
%>

Når du i din egen kode sætter den til lcase i strHUA først så skal den jo også sammenlignes med små bogstaver - ellers så finder den ikke noget...

Men prøv min kode i stedet...

\Dan
Avatar billede djsteiner Nybegynder
28. maj 2010 - 00:08 #4
super det virker nu  kom lige med et svar så giver jeg point
Avatar billede Slettet bruger
28. maj 2010 - 00:09 #5
ok...

her et svar

\Dan
Avatar billede djsteiner Nybegynder
28. maj 2010 - 00:11 #6
lige ekstra ? hvordan for du de der w3c stadarder på din side?
Avatar billede Slettet bruger
28. maj 2010 - 01:56 #7
ja det kommer lidt an på hvad du mener når du siger w3c standarder... Ethvert html dokument SKAL have en DTD, hvis det er det du tænker på? Men der findes mere end en slags DTD at vælge imellem der er html, xhtml, xml med flere. Og så er der så under hver en for henholdsvis strict og transitional kodning! Men det er ret vigtigt du sætter dig godt ind i det her issue inden du går i gang med din kodning! Og det afhænger jo også af hvilket sprog du beslutter dig for at kode i.

Og sidst men ikke mindst så har dette her intet med asp (eller andre server-side-scriptings) at gøre...
\Dan
Avatar billede djsteiner Nybegynder
28. maj 2010 - 08:09 #8
helt iorden igen tak for hjælpen :)
Avatar billede djsteiner Nybegynder
29. maj 2010 - 11:48 #9
hej igen Dan jeg har fandt ud af at det ikke virker som det skal endnu det så bare sådan ud sidst problemet er at ikke finder den fil der  hedder

strUA="style.css"


hvad kan dette skyldes


Den bruger nu den css fil der hedder strUA="ie7style.css"
Avatar billede Slettet bruger
29. maj 2010 - 15:03 #10
tjae... det er lidt svært at svare på. Prøv at smide hele koden herind!
Avatar billede djsteiner Nybegynder
29. maj 2010 - 17:12 #11
Vil du gerne have hele min kode fra siden?

den kode vi snakker om er i spørgsmål 5#


<%
strHUA=lcase(request.servervariables("http_user_agent"))
if len(strHUA)<>len(replace(strHUA,"msie","")) then
strUA="ie7style.css"
elseif len(strHUA)<>len(replace(strHUA,"msie 6","")) then
strUA="ie6style.css"
else
strUA="style.css"
end if
CSSDetect=strUA
%>

<link href="./css/<% = CSSDetect %>" rel="stylesheet">
Avatar billede Slettet bruger
29. maj 2010 - 22:44 #12
ok... hvad så med:

<%
strHUA=lcase(request.servervariables("http_user_agent"))
if len(strHUA)<>len(replace(strHUA,"msie","")) then
if len(strHUA)<>len(replace(strHUA,"msie 6","")) then
strUA="ie6style.css"
else
strUA="ie7style.css"
end if
else
strUA="style.css"
end if
CSSDetect=strUA
%>

\Dan
Avatar billede djsteiner Nybegynder
30. maj 2010 - 01:38 #13
Så skulle den være god nu virker det :) 

Jeg har teste det med det program der hedder: adobe browser lab

mange tanke for hjælpen :)

hvis du gerne vi have flere point siger du bare til
Avatar billede djsteiner Nybegynder
08. juni 2010 - 22:00 #14
hej igen Dan ville lige høre om du kunne hjælpe mig igen vil gerne tilføje noget det script du lavde i spørgsmål  #12
jeg har prøvet mig frem her men så for jeg denne fejl:

Microsoft VBScript compilation  error '800a03ea'

Syntax error

/index.asp, line 31

else
^

her koden som den ser ud nu:

Jeg har lige skrevet line 31 ud for der hvor fejlen opstår

<%
strHUA=lcase(request.servervariables("http_user_agent"))
if len(strHUA)<>len(replace(strHUA,"msie","")) then
if len(strHUA)<>len(replace(strHUA,"msie 6","")) then
strUA="ie6style.css"
else
strUA="ie7style.css"
end if
else
strUA="ie8style.css"
end if
line 31  else
strUA="style.css"
end if
CSSDetect=strUA
%>
Avatar billede Slettet bruger
09. juni 2010 - 01:31 #15
- som jeg ser det så starter du to if-sætninger og afslutter tre... Det vil jeg tro er fejlen...

\Dan
Avatar billede djsteiner Nybegynder
09. juni 2010 - 18:28 #16
nu har jeg prøvet at fjerne et af "end if" men den kommer stadig med samme fejl:



her koden som den ser ud nu:

<%
strHUA=lcase(request.servervariables("http_user_agent"))
if len(strHUA)<>len(replace(strHUA,"msie","")) then
if len(strHUA)<>len(replace(strHUA,"msie 6","")) then
strUA="ie6style.css"
else
strUA="ie7style.css"
end if
else
strUA="ie8style.css"
end if
else
strUA="style.css"

CSSDetect=strUA
%>
Avatar billede Slettet bruger
09. juni 2010 - 18:51 #17
ok... Man kan sagtens have flere if-sætninger, også som er flettet inden i hinanden... Men det skal afsluttes allesammen.
Se her:
- og se mine kommentarer i scriptet (kommentarerne referer til linien ovenfor den):
<%
strHUA=lcase(request.servervariables("http_user_agent")
if len(strHUA)<>len(replace(strHUA,"msie","")) then
'Her starter vi en if-sætning. Vi ser efter om strengen strHUA indeholder msie. Denne ifsætning er øverst og tjekkes derfor først.
if len(strHUA)<>len(replace(strHUA,"msie 6","")) then
'Hvis den øverste if-sætning er tilfældet så tjekker vi her om strengen også indeholder msie 6. Denne if-sætning er nummer to og tjekkes lige bagefter.
strUA="ie6style.css"
else
'Hvis strengen indeholder msie men IKKE msie 6 gøres nedenstående.
strUA="ie7style.css"
end if
'Her aflsutter vi den inderste if-sætning (nummer to).
else
'Hvis strengen ikke indeholder msie gøres som nedenfor.
strUA="style.css"
end if
'Her afslutter vi den yderste if-sætning.
%>

Der er ikke nogen fejl i dette her script. Og hvis jeg skal hjælpe dig yderligere bliver du nød til at fortælle hvad det egentlig er du vil? Og det kan vel også være andre ting på sidend er er noget galt med...?

\Dan
Avatar billede djsteiner Nybegynder
09. juni 2010 - 19:50 #18
Mange tak for dit indlæg bekager lige at jeg er lidt besværlig.

jamen jeg har nemlig både installeret ie8 på min pc her hjemme og på arbejde men siden ser ikke ens ud.

Jeg har prøvet at teste siden i et program der hedder adobe browser lab her virker den heller ikke i ie 8.

men hvad betyder msie?

kan jo se der er noget der hedder msie 6 er der så også noget der hedder msie 8

'Hvis strengen ikke indeholder msie gøres som nedenfor'

betyder det så at at det er til alle andre browser end ie eller bare alt andet end ie6 og ie7??


Håber dtte giver lidt mening
Avatar billede djsteiner Nybegynder
09. juni 2010 - 21:42 #19
Avatar billede djsteiner Nybegynder
10. juni 2010 - 00:03 #20
Hej igen efter jeg har kigget lidt på de links jeg  i spørgsmål #19 kom frem til denne løsning:

Det jeg fandt på nettet:

<!--[if IE 8]><link rel="stylesheet" href="css/ie8style.css"" type="text/css" media="screen" /><![endif]-->


det ser ud til at det køre på den måde, men nu må jeg  lige se når jeg kommer på arbejde i morgen. :)
Avatar billede Slettet bruger
10. juni 2010 - 00:43 #21
ok... Jeg skrev bare mit sidste indlæg til dig for at få dig til at forstå en if-særning 100%... Sådan at en fejl som den du havde før ikke gentager sig.

Du har sikkert ret i at det formentlig er en bedre løsning den du har i #20 - det har bare ikke så meget med asp at gøre. Derfor har jeg ikke foreslået dig dette i stedet.

if-sætningerne i asp kan ikke som sådan "mærke" hvilken browser klienten bruger. Den analyserer bare hvad strengen "request.servervariables("http_user_agent")" indeholder og ikke indeholder og handler derud fra.

I øvrigt så må det da godt nok være en meget komplekts css-fil du har siden den skal tilpasse sig så specifikt til hver browser....

\Dan
Avatar billede djsteiner Nybegynder
10. juni 2010 - 08:13 #22
Jeg har arbejdet noget med if sætninger og forstår og godt det med at få dem ordenligt lukket nogle gange kan man bare se sig blind på en fejl men jeg burde nok øve mig noget mere på lige det område da det jo ganske vigtigt!

Men du har virkelig været til stor hjælp endnu engang tak :)

Ja jeg skal nok lige have kørt en W3C validators på min CSS fil virker lidt voldsomt at det ikke virker bedre, men det er nu heller ikke meget der skal rettes i CSS filen. for eksempel ser IE8 og den fil der hedder style helt ens ud.

men nu har jeg tjekket siden på arbejde og her virker det også fint nu.

Karsten :)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester