Avatar billede nythjem Nybegynder
21. juni 2005 - 16:04 Der er 24 kommentarer og
1 løsning

Validering af mac IE browser?

Hej Alle!

Jeg har en side, hvor jeg segmenter lidt i browserne :) Det gør jeg med understående script.

Nu er jeg imidlertid bare løbet ind i, at mac brugeren ikke kan komme ind, da deres nyeste version af Explorer hedder 5.2.3.

Hvordan søren lukker jeg dem ind? Noget if MAC og version 5.2.3? Så luk ind.. ??

:)

<script language="JavaScript">
var ie5 = (navigator.userAgent.indexOf("MSIE 5.5") > 0  | navigator.userAgent.indexOf("MSIE 6.0") > 0) ? 1 : 0;
var ns6 = (navigator.userAgent.indexOf("Gecko")    > 0) ? 1 : 0;
var ie4 = (document.all && !document.getElmentById) ? 1 : 0;
var ns4 = (document.layers) ? 1 : 0;

if (ie5) document.location = "<%=GoOnLink%>";
else if (ns6) document.location = "brow3.asp";
else if (ie4) document.location = "brow3.asp";
else if (ns4) document.location = "brow3.asp";
</script>
Avatar billede jokkejensen Novice
21. juni 2005 - 16:55 #1
sæt altid en else på sådanne statements.. Ellers forbyder du jo brugere at komme ind..
Avatar billede nythjem Nybegynder
21. juni 2005 - 17:01 #2
Hej Jokke..

Smid rettelserne på, så det bliver et korrekt script :)

Nb., det er meningen at kun IE version 5.5 eller derover på Pc platform skal ind.. :)

Men så nu også Mac 5.2.3 :)
Avatar billede jokkejensen Novice
21. juni 2005 - 17:08 #3
Narj det må du da ikke... Der er flere og flere brugere der benytte alternative browsere til MS os, og flere og flere der bruger alternative styresystemer...

Men det skal jeg ikke blande mig i...

Jeg kan nok alligevel desværre ikke hjælpe dig... jeg bruger altid serverscript til at finde browser oplysninger og sortere... har du mulighed for dette ?
Avatar billede roenving Novice
21. juni 2005 - 17:10 #4
Hvad så med:

<script type="text/javascript">
var ua = navigator.userAgent.toLowerCase();
var msie = ua.indexOf('msie');
if(msie > -1 && ua.indexOf('opera') == -1 && parseFloat(ua.substring(msie+5)) > 5)
  location.href = "<%=GoOnLink%>";
else
  location.href = "brow3.asp";
</script>
Avatar billede roenving Novice
21. juni 2005 - 17:11 #5
Måske > 5.2 !-)
Avatar billede nythjem Nybegynder
21. juni 2005 - 17:26 #6
Jokke, jeg er meget opmærksom på platforme, men jeg har desværre noget javascript på siden som ikke er cross browser, så desværre kun IE :)

Men det gør nu hellere ikke så meget :)

Jes, skal lige høre..

- Lukker du Opera ind?

Mit javascript har brug for noget der er indbygget i IE 5.5 til Win, ved ikke helt hvad det kunne tænkes at være, men er det også indbygget i versioner højere end 5.2?

:)
Avatar billede plazm Nybegynder
21. juni 2005 - 17:29 #7
nythjem, hvad så med at lave det til noget crossbrowser ? Tvivler altså på at det ikk er muligt.
Avatar billede nythjem Nybegynder
21. juni 2005 - 17:35 #8
:) Nej det kommer nok ikke til at ske. Jeg benytter en wysiwyg editor, og den skal jeg ikke til at rode med andet modificere :)
Avatar billede busschou Praktikant
21. juni 2005 - 17:45 #9
jokkejensen >> Bare nysgerrig - hvordan ser din løsning ud serverside?
Avatar billede jokkejensen Novice
21. juni 2005 - 18:58 #10
jeg søger bare i http headeren.. det skulle da ikke være så svært ?
Avatar billede busschou Praktikant
21. juni 2005 - 19:28 #11
jokkejensen >> det ved jeg ikke , derfor jeg spørger jo ;o)
Avatar billede jokkejensen Novice
21. juni 2005 - 19:58 #12
protected bool isIEaboveFive(string httpHeader)
        {
            int isIE = httpHeader.ToLower().IndexOf("msie");
            double ieVersion;
            if(isIE > 1)
            {
                ieVersion = System.Convert.ToDouble(httpHeader.Substring(isIE + 5, 3));

                if(ieVersion > 5)
                    return true;
            }

            return false;
        }

Der er sikkert mere at tage højde for.... men det skulle ikke være svært når roenvig har eksemplet deroppe..
Avatar billede jokkejensen Novice
21. juni 2005 - 20:03 #13
hvad spørger du egentligt efter du har da selv styr på server script... Wierdo..
Avatar billede busschou Praktikant
21. juni 2005 - 20:43 #14
hmm wierdo...hmmm.. så siger vi det
Jeg er jo ikke "al vidende" - hvis jeg var det så var jeg sku nok millionær nu :o)
Jeg lærer hele tiden nyt
Jeg troede rent faktisk ikke man kunne gøre det serverside, og regnede ikke med at browseren oplyste til serveren af hvilken type den var.
Jeg kan ikke se hvorfor den skal gøre det. Så kunne den jo ligeså godt oplyse det hele og skærmstørrelse mm. Hvorfor lige oplyse det? Det forstår jeg ikke
Men det har jeg så lært nu :o)
--
Ved godt det ikke er mit spørgsmål så undskylder lige for at tage plads op !
jokkejensen >> findes der så en oversigt et sted over hvordan browsere identificerer sig? Der findes jo uendelig mange browsere, så blot at søge efter "msie" virker ret tilfældigt i mine øjne
Avatar billede nythjem Nybegynder
21. juni 2005 - 20:55 #15
Jes, tak for hjælpen :) Meget velfungerende :)

Og rigtig god aften..
Avatar billede nythjem Nybegynder
21. juni 2005 - 20:56 #16
Og du må selvfølgelig gerne ligge et svar *Gg*
Avatar billede roenving Novice
22. juni 2005 - 02:08 #17
Det er sådan, at den eneste udgave af IE, som der er udgivet underversioner mellem 5.0 og 5.5 er Mac-udgaverne !-)

-- men hvis en specifik ting er nødt til at bruge 5.2.3 og ikke en tidligere 5.2 skal man jo lidt længere omkring i sine betingelser ...

-- og det ovenstående trick med at undersøge om der ingen steder står 'opera' burde udelukke Opera, da den ellers jo er i stand til at skrive hvadsomhelst i UserAgent-strengen ...

-- iøvrigt er jeg principielt enig i, at man kun i decideret intranet- eller klient-software kan tillade sig den slags, men så kan man også, selvom jeg selv helst ville undgå det for en internet-baseret applikation !o]

Velbekomme '-)

PS. >>jokkejensen, er der ikke direkte statiske metoder i en af browser-klasserne til at identificere specielt 5.5+ ?-)
Avatar billede jokkejensen Novice
22. juni 2005 - 08:35 #18
busschou.... hmmm jeg undskylder min udtalelse, trodede bare lige du forsøgte at få min udtalelse til at se dum ud..


Roenving >> jo der er meget smartere metoder :)

eksempelvis til C#

HttpBrowserCapabilities bc = Request.Browser;


her efter kan jeg se:

Response.Write("<p>Browser Capabilities:</p>");
Response.Write("Type = " + bc.Type + "<br>");
Response.Write("Name = " + bc.Browser + "<br>");
Response.Write("Version = " + bc.Version + "<br>");
Response.Write("Major Version = " + bc.MajorVersion + "<br>");
Response.Write("Minor Version = " + bc.MinorVersion + "<br>");
Response.Write("Platform = " + bc.Platform + "<br>");
Response.Write("Is Beta = " + bc.Beta + "<br>");
Response.Write("Is Crawler = " + bc.Crawler + "<br>");
Response.Write("Is AOL = " + bc.AOL + "<br>");
Response.Write("Is Win16 = " + bc.Win16 + "<br>");
Response.Write("Is Win32 = " + bc.Win32 + "<br>");
Response.Write("Supports Frames = " + bc.Frames + "<br>");
Response.Write("Supports Tables = " + bc.Tables + "<br>");
Response.Write("Supports Cookies = " + bc.Cookies + "<br>");
Response.Write("Supports VB Script = " + bc.VBScript + "<br>");
Response.Write("Supports JavaScript = " + bc.JavaScript + "<br>");
Response.Write("Supports Java Applets = " + bc.JavaApplets + "<br>");
Response.Write("Supports ActiveX Controls = " + bc.ActiveXControls + "<br>");
Response.Write("CDF = " + bc.CDF + "<br>");


altså med bc.Browser bc.Version bc.Type er man langt... Men det er sjældent jeg bruger det.. så man skal lige lave et opslag på msdn for at finde den korrekte..
Avatar billede jokkejensen Novice
22. juni 2005 - 08:40 #19
busschou >> mener det i asp er Request.ServerVariables("HTTP_USER_AGENT")
Avatar billede busschou Praktikant
22. juni 2005 - 08:46 #20
jokkejensen >> Ja det er sandt, men dilemmaet er så vidt jeg har hørt at den kun genkender browserer som er defineret i browscap.ini filen, og hvis man ikke har sin egen server så kan man jo ikke rette i den.
Nu ved jeg ikke hvad dit C# returnerer men det kunne måske også tænkes at den heller ikke kan genkende alle browsere og versioner?

Så anyway - det var ikke for at virke nedladende ! - Jeg bruger selv kun php og asp, dvs ikke .net (endnu i hvert fald :o), og jeg kan bare ikke se hvordan man i eksempelvis asp skulle kunne være sikker på en genkendelse, med mindre man kender de specifikke sendte headere fra de enkelte browsere på forhånd, og så har adgang til at ændre den opsætning
Men det er muligt jeg tager fejl der?
Avatar billede nythjem Nybegynder
22. juni 2005 - 13:15 #21
Tak for svaret Jes.

Nu er jeg bestemt også meget imod differentiering af browsere, men som sagt er jeg nødt til det på grund af min wysiwyg editor. Og der er tale om en webapplikation ala intranet ekstranet cms, og målgruppen er typisk folk der ikke har forstand på web, hvorfor jeg helt generelt har valgt ikke at forvirre dem for meget. Støj gør jo brugere forvirret :)
Avatar billede roenving Novice
22. juni 2005 - 14:38 #22
-- tænkte nok, at det var den slags !-)

-- og tak for point ;~}
Avatar billede jokkejensen Novice
22. juni 2005 - 19:58 #23
Nej du har ret, men man kan jo aldrig stole på headeren, men når man eksempelvis arbejder med compact framework til .net til mobile enheder, bliver man simpelthen nød til det, da jeg plejer at få serveren til at scalere billederne (JIT) alt efter skærmstørrelse og understøttelse mm.

Folk kan snyde hvis det passer dem, men kan kun se det skader dem. Jeg kender ikke til browscap.ini, har ikke undersøgt det så meget da jeg sjældent bruger det til normale webløsninger da jeg syntes det er lidt forkert..

Mvh
Avatar billede jokkejensen Novice
22. juni 2005 - 20:00 #24
nythjem >> jeg ville mere bruge det javascript til at vise en passende editor !! ikke til at udelukke folk fra applikationen.. find en crossbrowser som sikkert har mindre funktioner til andre browsere... bare en idee...

et eksempel : http://www.dynarch.com/demos/htmlarea/examples/table-operations.html
Avatar billede nythjem Nybegynder
23. juni 2005 - 12:57 #25
Meget pudsigt bruger jeg faktisk den gamle html area.

Men de er holdt op med at udvikle på den desværre, og så er der jo nogle andre drenge der har overtaget, eksempelvis Mike B. fra Dynarch.com eller noget der hedder Xinha..

Men jeg har efterhånden fundet ud af, at tingene hopper og danser i eksempelvis Mozilla, og ting der hopper og danser og opfører sig uregulært, nej tak :)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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