boris12Medlem sedan jan. 200812 inlägg 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?
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.
Just det -jag testar inte versionen av IE. Det får du komplettera med. navigator.appVersion borde fungera.