Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Script med besked til IE6 brugere

1 view
Skip to first unread message

Preben Nielsen

unread,
Jun 9, 2011, 4:41:12 AM6/9/11
to
Jeg har besluttet at mit (igangværende) renoverede site mht. Internet
Explorer layoputmæssigt skal være tæt på korrekt bagud til og med IE7.
I IE6 kan visse sider se underlige ud, bl.a. forsiden, som er helt
forkert. Jeg vil derfor gerne have at IE6-brugere mødes med en side
med en besked om at sitet ser mærkeligt ud i deres browser, en
opfordring til opgradering og et link man kan benytte, hvis man trods
disse beskeder alligevel ønsker at se sitet i IE6. Når jeg nu er
igang, kan jeg kan vel lige så godt give beskeden til brugere af alle
versioner tidligere end IE6 (inklussive), selv om disse versioner vel
efterhånden må betragtes som helt ude.

Er der nogen der kan levere sådan et script? (Jeg kan ikke selv skrive
scripts overhovedet.) Jeg går ud fra at det er javascript, der er
aktuelt, men hvis det mod forventning skulle være andet, så kører jeg
med php.

Når udgangspunktet er valid kode (XHTML 1.0 Transitional), og at jeg
tjekker sitets layout i de aktuelle versioner af Firefox, Opera,
Safari og Chrome, formoder jeg ikke, det er nødvendigt at lave en
tilsvarende besked til brugere af ældre versioner af disse browser
(det virkede også i FF3), som jeg har indtryk af fortolker valid kode
ok. Har jeg ret i dette?
Jeg regner også med at andre browsere end de nævnte bliver brugt i så
mikroskopisk målestok, er det er acceptabelt at nøjes med advarsel til
IE-brugere fra 6 og nedefter. Korrekt?

/Preben

Birger Sørensen

unread,
Jun 9, 2011, 8:14:50 AM6/9/11
to
Preben Nielsen kom med denne ide:

Kort og firkantet: det gøres med CSS og CC - ikke js.

Indsæt din besked i en div, der har display:none; i CSS - gerne direkte
i body.
Eks:
#warning {
position : absolute;
top : 100px;
left : 20%;
width : 80%;
display : none;
}

i <head> indsætter du en Conditional Comment
<!--[if IE]>
<style type="text/css">
#warning {
display : block;
}
</style>
<![endif]-->

<body>
<!-- andet indhold -->
<div id="warning">Skift så til en rigtig browser! <b>NU!</b></div>
</body>

Du skal nok have [if lt IE 7] i stedet for [if IE], og selve
meddelelsen og linkene, kan du nok selv rette til...

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk


Preben Nielsen

unread,
Jun 9, 2011, 10:23:24 AM6/9/11
to
Det kan jeg godt bruge.

Det blev godt nok en lidt anden løsning end jeg havde forestillet mig.
Så nu sidder beskeden klistret fast på alle sider, så længe man er i
IE6 eller lavere (møgirriterende at se på for brugeren, men det kan
måske motivere til en opgradering). Og beskeden kan let ændres efter
behov, idet det hele ligger i inkluderede filer.

Mange tak for hjælpen.

/Preben

Martin Larsen

unread,
Jun 9, 2011, 10:25:24 AM6/9/11
to
Preben Nielsen wrote:

> Så nu sidder beskeden klistret fast på alle sider

Du kan bare nøjes med at bruge css-koden på forsiden.

Message has been deleted

Preben Nielsen

unread,
Jun 9, 2011, 11:10:01 AM6/9/11
to
On 9 Jun., 16:25, Martin Larsen <martin+spamfree+lar...@bigfoot.com>
wrote:

> Du kan bare n jes med at bruge css-koden p forsiden.

Ja, men så vises beskeden jo ikke hvis undersider findes via
søgemaskiner, og den skal ses, når man kommer ind på sitet, uanset
hvad indgangen er. Jeg havde blot forestillet mig en løsning, hvor
man
som det første kommer ind på en side kun med meddelelsen, og at man

via link kan gå ind på sitet og se det på normal vis, altså uden
beskeden.

Noget helt andet:
Min kode i head kom til at se til det der svarer til:

<style type="text/css">


#warning {
position : absolute;
top : 100px;
left : 20%;
width : 80%;
display : none;
}

</style>

<!--[if IE]>
<style type="text/css">
#warning {
display : block;
}
</style>
<![endif]-->

Som nævnt i en inkluderet fil, ligesom i body:

<div id="warning">Skift s til en rigtig browser! <b>NU!</b></div>

er i en inkluderet fil, så det virker på alle sider.

Men jeg ville så prøve at flytte det fra head ind i et globalt
stylesheet, men det virkede kun hvis jeg beholdt <style type="text/
css"></style>, hvilket jeg troede jeg kunne undvære der. Men den går
altså af en eller anden grund ikke?
Ikke fordi det betyder alverden, jeg er blot nysgerrig mht. hvordan
tingene hænger sammen.

/Preben

Birger Sørensen

unread,
Jun 9, 2011, 11:22:45 AM6/9/11
to
Den 6/9/2011, skrev Preben Nielsen:
> On 9 Jun., 16:25, Martin Larsen <martin+spamfree+lar...@bigfoot.com>
> wrote:
>
>> Du kan bare n jes med at bruge css-koden p forsiden.
>
> Ja, men så vises beskeden jo ikke hvis undersider findes via
> søgemaskiner, og den skal ses, når man kommer ind på sitet, uanset
> hvad indgangen er. Jeg havde blot forestillet mig en løsning, hvor man
> som det første kommer ind på en side kun med meddelelsen, og at man så
> via link kan gå ind på sitet og se det på normal vis, altså uden
> beskeden.
>
> Noget helt andet:
> Min kode i head kom til at se til det der svarer til:
>
> <style type="text/css">
> #warning {
> position : absolute;
> top : 100px;
> left : 20%;
> width : 80%;
> display : none;
> }
> </style>

>
> <!--[if IE]>
> <style type="text/css">
> #warning {
> display : block;
> }
> </style>
> <![endif]-->
>
> Som nævnt i en inkluderet fil, ligesom
>
> <body>
> <!-- andet indhold -->
> <div id="warning">Skift s til en rigtig browser! <b>NU!</b></div>
> </body>
>

> er i en inkluderet fil, så det virker på alle sider.
>
> Men jeg ville så prøve at flytte det fra head ind i et globalt
> stylesheet, men det virkede kun hvis jeg beholdt <style type="text/
> css"></style>, hvilket jeg troede jeg kunne undvære der. Men den går
> altså af en eller anden grund ikke?
> Ikke fordi det betyder alverden, jeg er blot nysgerrig mht. hvordan
> tingene hænger sammen.
>
> /Preben

CC - conditional comment - er en M$ opfindelse. Formentlig fordi IE er
noget rod, og forskellige versioner forstår/tolker koderne forskelligt,
så der er tilfælde hvor visningen i forskellige versioner af IE ikke er
ens - og det må man, når man er M$, gøre noget ved, ved at lave et
tillæg til et tillæg til et tillæg...

Det er kun IE der forstår CC.
De andre springer det over, fordi det starter og slutter som et
kommentar-tag.
Det der står indeni, skal stadig følge reglerne.
Du kan have style eller script, dedikerede meta til IE, etc. Men det
skal stadig pakkes ind i de rigtige tags. Efter CC-start-tag, skal der
altså stå, hvad det handler om - <style> tagget i dette tilfælde.
CC'er skal stå i head - du kan ikke "pakke det ind" i andre tags. Men
kan altså ikke i en css fil have CC'er med den kode der er beregnet til
IE.
Du kan godt include i PHP, men tingene skal stadig sættes sammen, så CC
koden kommer til at stå som direkte child i <head>.

Birger Sørensen

unread,
Jun 9, 2011, 11:32:46 AM6/9/11
to
Birger Sørensen forklarede:

Var lige lidt hurtig på aftrækkeren...
Hvis du ikke har noget imod at rode js ind i det, kan en timer (5-10s)
og en funktion der sætter display:none; på #warning fjerne den. Eller
et element i div'en kan kalde en tilsvarende funktion. Men det vil ikke
være muligt for ikke-javascript brugere at fjerne den.

Preben Nielsen

unread,
Jun 9, 2011, 11:34:51 AM6/9/11
to
Tak for forklaringen.

/Preben

Jørn Andersen

unread,
Jun 9, 2011, 6:20:40 PM6/9/11
to
On Thu, 9 Jun 2011 08:07:06 -0700 (PDT), Preben Nielsen <p...@mail.dk>
wrote:

>On 9 Jun., 16:25, Martin Larsen <martin+spamfree+lar...@bigfoot.com>
>wrote:
>

>Men jeg ville så prøve at flytte det fra head ind i et globalt
>stylesheet, men det virkede kun hvis jeg beholdt <style type="text/
>css"></style>, hvilket jeg troede jeg kunne undvære der. Men den går
>altså af en eller anden grund ikke?
>Ikke fordi det betyder alverden, jeg er blot nysgerrig mht. hvordan
>tingene hænger sammen.

Du burde kunne lave en Conditioanl comment med link til eksternt
stylesheet - noget a la:

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

Good luck!

Jørn

--
Jørn Andersen
socialister.dk
marxisme.dk

Stig Johansen

unread,
Jun 14, 2011, 6:18:05 AM6/14/11
to
Preben Nielsen wrote:

> Når udgangspunktet er valid kode (XHTML 1.0 Transitional),

Nu har du nok lavet det, men ellers prøv XHTML strict.

Så vidt jeg husker er der _meget_ stor forskel på rendering i IE6 afhængig
om det er (valid) XHTML-strict eller ej.

Hvorfor har du valgt transitional?

--
Med venlig hilsen
Stig Johansen

0 new messages