Avatar billede nicocarlos Nybegynder
04. juni 2008 - 15:13 Der er 4 kommentarer og
1 løsning

Appending af innerHtml problem med IE6

Hejsa.

Har et problem med følgende java script:

http://www.eksperten.dk/spm/833831

Det virker fint i IE7, men som jeg har forstået skal det innerHtml laves på en anden måde for at fungerer i IE6, som det virker nu bliver det bare smidt i bunden og så bliver man nødt til at scrolle ned.

Håber der er en der har prøvet det før.

På forhånd tak
Avatar billede olebole Juniormester
04. juni 2008 - 15:39 #1
<ole>

Der burde ikke være forskel på den måde innerHTML fungerer i IE6 og IE7. Men hvorfor overhovedet bruge innerHTML? Den har aldrig været valid i nogen standard og bliver det aldig - ligesom den meget let medfører en bunke problemer. Tjek denne artikel om emnet:
    http://www.dengodekode.dk/artikler/DOM/no_innerhtml.php

/mvh
</bole>
Avatar billede mclemens Nybegynder
04. juni 2008 - 22:03 #2
Position:fixed er ikke understøttet i IE6
... så forhåbentlig virker denne ...


<script type='text/javascript'>
var firstTimer=true;
scrolltop=0;
function popUp(test){
    if(document.getElementById("pop_overlay")){window.scroll(0,scrolltop);
        document.getElementById("pop_overlay").parentNode.removeChild(document.getElementById("pop_overlay"));
        document.getElementById("pop_container").parentNode.removeChild(document.getElementById("pop_container"));
    }else{scrolltop=document.documentElement.scrollTop;document.documentElement.scrollTop="0px";
        document.body.innerHTML+="<div id='pop_overlay' style='position:absolute;top:0px;left:0px;width:100%;height:100%;background:#000;filter:alpha(opacity=60);-moz-opacity:0.6;opacity:0.6;'></div><div id='pop_container' style='position:absolute;top:0px;left:0px;width:100%;height:100%;background:transparent;'><div id='pop_inner' style='display:block;width:520px;height:520px;margin:120px auto 0 auto;background:#ffffff;border:1px solid #999999;'><? echo $test; ?>"+test+"<a href='java script:popUp();'>Luk</a><div></div>";
    }
}
</script>
Avatar billede olebole Juniormester
05. juni 2008 - 15:38 #3
<script type="text/javascript">
var firstTimer=true;
scrolltop=0;
function popUp(test) {
    var css = document.getElementById("pop").style;
    if(css.display=="block"){
        window.scroll(0,scrolltop);
        css.display = "none";
    }else{
        var scrolltop=document.documentElement.scrollTop;
        document.documentElement.scrollTop=0;
        document.getElementById("pop_inner").firstChild.nodeValue = "<?php print $test ?>" + test;
        css.display = "block";
    }
}
</script>

<div id="pop" style="display:none">
    <div id="pop_overlay" style="position:absolute;top:0px;left:0px;width:100%;height:100%;background:#000;filter:alpha(opacity=60);-moz-opacity:0.6;opacity:0.6;"></div>
    <div id="pop_container" style="position:absolute;top:0px;left:0px;width:100%;height:100%;background:transparent;">
        <div id="pop_inner" style="width:520px;height:520px;margin:120px auto 0 auto;background:#ffffff;border:1px solid #999999;">&nbsp;<a href="java script:popUp();">Luk</a></div>
    </div>
</div>
Avatar billede olebole Juniormester
05. juni 2008 - 15:40 #4
Hehe - jeg er 'heldig' i dag  :D

Min kommentar til koden var:
"- men hvorfor bruge invalid kode fra WWW's tidlige barndom, når du kan bruge tidsvarende kode i stedet:" ... men jeg kom til at kyle den i den første tråd om emnet  :oP
Avatar billede mclemens Nybegynder
05. juni 2008 - 17:01 #5
Ole:> Jep, det er bedre med noget nyt.

NicoCarlos:> Ret lige
        var scrolltop=document.documentElement.scrollTop;
til
        scrolltop=document.documentElement.scrollTop;
- ellers oprettes en lokal variabel i stedet for at rette den globale

var firstTimer=true; er ikke nødvendig.
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