webForumDet fria alternativet

Förenkla?

2 svar · 384 visningar · startad av boris12

boris12Medlem sedan jan. 200812 inlägg
#1

En div med innehåll ska visas högst upp på sidan om användaren har internet explorer 7.

Jag har skapat funktionen som ser ut så här:

Head:

<!--[if IE 7]>
<script type="text/javascript">
var ie7='<div id="hej">lorem ipsum dolar sit...</div>'
</script>
<![endif]-->

Högst upp i body där jag vill ha texten:

<!--[if IE]>
<script type="text/javascript">
document.write(ie7);
</script>
<![endif]-->

Men jag vill förenkla funktionen och slippa ha javascript i html koden. Går det på något sätt att göra så jag bara behöver ha javascript i headern? Eller kanske bara lägga till en div där jag vill ha texten?

itpastornMedlem sedan feb. 2007278 inlägg
#2

Du har rätt i att man bör undvika document.write och blanda skript med HTML.

Enklast lägger du till en tom div i din kod och kör ett skript typ följande:

<script type="text/javascript">
    window.onload = function() {
        if ( !document.getElementById ) return;
        // Testing for MSIE
	var isMSIE = /*@cc_on!@*/false;
	if ( isMSIE ) {
            document.getElementById("hej").innerHTML = "Lorem ipsum...";
	} else {
            document.getElementById("hej").parent.removeChild(document.getElementById("hej"));
        }
    }
</script>

IE känns igen på ett sätt som förklaras här: http://dean.edwards.name/weblog/2007/03/sniff/

Om det inte stör din design, kan du låta den tomma diven ligga kvar, eller sätta dess display till none i CSS och ta fram den med skriptet.

itpastornMedlem sedan feb. 2007278 inlägg
#3

Just det -jag testar inte versionen av IE. Det får du komplettera med. navigator.appVersion borde fungera.

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