Avatar billede oersted Novice
04. juli 2011 - 10:27 Der er 17 kommentarer

Script til detect af Internet Explorer < version 8

Et af mine sites vises ikke rigtigt i IE under version 8.

Kan jeg få hjælp til et script som detecter browser og gir besked om at opgradere ?
Avatar billede majbom Novice
04. juli 2011 - 10:38 #1
måske der er noget brugbart her: http://www.w3schools.com/js/js_browser.asp ?
Avatar billede olsensweb.dk Ekspert
04. juli 2011 - 10:44 #2
kan du ikke bare bruge en conditional comment ref http://www.hjemmesideskolen.dk/html/testsider/conditionalcomment.php
<!--[if lt IE 8]>
denne tekst læses kun af IE ældre end version 8
<![endif]-->

og som splazz forslår http://www.w3schools.com/js/js_browser.asp
specielt
navigator.appName
navigator.appVersion
Avatar billede keysersoze Guru
04. juli 2011 - 10:46 #3
Lidt afhængig af din målgruppe er der rigtig mange brugere der ikke kan opgradere så du rsikerer at tabe en stor mængde besøg - måske det var en bedre mulighed at lave de formentlig få tilpasninger der skal til få den mere crossbrowser.
Avatar billede coderdk Praktikant
04. juli 2011 - 13:04 #4
En stor mængde besøg er i dette tilfælde omkring 6% (målt på 32000 unikke besøgende inden for de sidste 30 dage).
Spørgsmålet er, hvor meget arbejde du vil ligge i de 6% :)

Conditional comments er nok vejen frem, ville jeg tro - Altså som ronols skriver.
Avatar billede oersted Novice
04. juli 2011 - 13:18 #5
kunden havde IE 7 eller 6 - så det er rigelig begrundelse ...
sitet validerer i alt andet
Avatar billede oersted Novice
04. juli 2011 - 13:19 #6
og arbejdet jeg gerne vil lægge er at advisere brugere af IE 7 og tidligere om at en upgrade nok vil være en god idé :-)
Avatar billede olsensweb.dk Ekspert
04. juli 2011 - 15:43 #7
http://msdn.microsoft.com/en-us/library/ms537512%28v=vs.85%29.aspx
<!--[if lt IE 8]>
<p>Please upgrade your Internet Explorer.</p>
<![endif]-->


http://www.javascriptkit.com/javatutors/navigator.shtml
<script type="text/javascript">
if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){ //test for MSIE x.x;
var ieversion=new Number(RegExp.$1) // capture x.x portion and store as a number
if (ieversion<8)  document.write("Please upgrade your Internet Explorer");
}
</script>


js demo http://olsensweb.dk/test/experten/spm/942342/index_js.html
cc demo http://olsensweb.dk/test/experten/spm/942342/index_cc.html
Avatar billede oersted Novice
04. juli 2011 - 15:59 #8
hjælp mig her - hvad skal jeg skrive i min index.html ?
Avatar billede olsensweb.dk Ekspert
04. juli 2011 - 16:14 #9
hvis du vil anvende CC metoden, hvilke jeg vil anbefale, skal du skrive:
<!--[if lt IE 8]>
<p>Please upgrade your Internet Explorer.</p>
<![endif]-->

et sted i din body i index filen, der hvor du vil have beskeden, som vist i min "cc demo"

vælger du derimod js løsningen, skal du skrive
<script type="text/javascript">
if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){
var ieversion=new Number(RegExp.$1)
if (ieversion<8){ 
    document.write("Please upgrade your Internet Explorer");
}
}
</script>

et sted i din body i index filen, der hvor du vil have beskeden, som vist i min "js demo"
Avatar billede oersted Novice
04. juli 2011 - 16:58 #10
ok
er implementeret nu på http://www.krogerkvartetten.dk/

ved bare ikke om det virker ...
Avatar billede olsensweb.dk Ekspert
04. juli 2011 - 17:39 #11
jeg kan se du har placeret det js oven over body, det skal placeres i body.
du kan evt prøve at teste på http://browsershots.org/ der er i øjeblikke lang ventetid, husk at vælge javascript til.

du har lidt validerings fejl som du lige bør kigge på http://validator.w3.org/check?uri=http%3A%2F%2Fwww.krogerkvartetten.dk%2F&charset=%28detect+automatically%29&doctype=Inline&group=0
Avatar billede oersted Novice
04. juli 2011 - 17:42 #12
er min valideringsfejl ikke vedr Flash ??
Avatar billede olsensweb.dk Ekspert
04. juli 2011 - 18:02 #13
>er min valideringsfejl ikke vedr Flash ??
jo, du har 7 fejl på linje 81
<embed src="bund.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="670" height="40"></embed>

også får du en warning i js, men det er vist bare at pakke det ind i en CDATA[
så der står
<script type="text/javascript">
//<![CDATA[
if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){ //test for MSIE x.x;
    var ieversion=new Number(RegExp.$1) // capture x.x portion and store as a number
    if (ieversion<8){ 
        document.write("Please upgrade your Internet Explorer");
    }
}
//]]>
</script>
Avatar billede oersted Novice
04. juli 2011 - 21:48 #14
olsensweb.dk

mange tak, det fungerede

<!--[if lt IE 7]>
<script type="text/javascript">
    alert("Hent venligt en nyere version af Internet Explorer for at få vist krogerkvartetten.dk korrekt");
</script>
<!--<![endif]-->


smider du et svar ?
Avatar billede olsensweb.dk Ekspert
04. juli 2011 - 22:28 #15
du valgte så en combi løsning: CC til test og JS til at udskrive besked
der er dog indsneget sig en kommentar start for meget (<!--) på sidste linje, hvilke i øvrigt også giver en validerings fejl

sådan skal den se ud
<!--[if lt IE 7]>
<script type="text/javascript">
    alert("Hent venligt en nyere version af Internet Explorer for at få vist krogerkvartetten.dk korrekt");
</script>
<![endif]-->


burde det ikke være <!--[if lt IE 8]>, alternativt skulle det være <!--[if lte IE 7]> jf din beskrivelse i #0
http://www.hjemmesideskolen.dk/html/css2.php?id=css8#conditional-comment
Avatar billede oersted Novice
04. juli 2011 - 22:54 #16
tak. det er rettet nu.
Avatar billede oersted Novice
04. juli 2011 - 23:05 #17
det er rettet nu
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