Avatar billede tangveje Nybegynder
30. juli 2003 - 15:26 Der er 11 kommentarer og
1 løsning

Uønsket delay af innerHTML i loop

Hej, jeg sidder og arbejder på et lettere kompliceret DHTML script, og er stødt ind i et underligt problem. Jeg har noget kode i stil med dette (kun et simpelt eksempel for at vise ideen)

document.innerHTML += "Linie 1" ;

document.innerHTML += "Linie 2" ;

for ( i = 3 ; i <= 5 ; i++ )
{
    document.innerHTML += "Linie " + i ;
}

document.innerHTML += "Linie 6" ;

Den skulle gerne udskrive noget i stil med

Linie 1
Linie 2
Linie 3
.... og så videre

Istedet tager den sidste linie og flytter op før mit loop, så resultatet bliver :

Linie 1
Linie 2
Linie 6
Linie 3
Linie 4
Linie 5

Det ser mildest talt underligt ud, og jeg har ingen ide om hvorfor den ville gøre det. Er der en eller anden skjult detalje omkring innerHTML jeg ikke kender til, eller er det en bug i Mozilla (har ikke lige haft mulighed for at teste det i andet end Mozilla)... Håber nogen kan forklare dette fænomen for mig.
Avatar billede roenving Novice
30. juli 2003 - 15:54 #1
Jeg kunne altså ikke få den til at gøre det udfra et simpelt eksempel:

<html><head><script>
function befolkDiv(){
//g=document.getElementById('minDiv');
document.innerHTML += "Linie 1<br>" ;
document.innerHTML += "Linie 2<br>" ;
for ( i = 3 ; i <= 5 ; i++ )
{
    document.innerHTML += "Linie " + i + "<br>";
}
document.innerHTML += "Linie 6" ;
}
</script></head><body>
<div id="minDiv">
start
</div>
<button onclick="befolkDiv()">Udfyld div</button>
</body></html>

Med ovenstående ville den hverken i Mozilla 1.5, IE eller Stone's interne skrive nogetsomhelst ...

Men som du kan se prøvede jeg også med elementet g (div'en) -- og så fungerede det upåklageligt i allesammen -- du må ha' forsimplet for meget -- evt. overset noget !-)
Avatar billede tangveje Nybegynder
30. juli 2003 - 15:59 #2
Ja, det er muligt jeg har forenklet for meget, vil bare nødigt offentligtgøre for meget af min kode på nuværende stadie, så jeg håbede mit simple eksempel ville være nok... Her er en bid af min egentlige kode hvor problemet opstår...

document.body.innerHTML += '<div id="' + id + '_sel" class="cselect">' + id + '</div>' ;
       
document.body.innerHTML += '<div id="' + id + '_box" class="csbox">' ;

var options = sel.getElementsByTagName( 'option' ) ;
       
for ( x = 0 ; x < options.length ; x++ )
{
    var option = options[x] ;
           
    var value  = option.value ;
           
    document.body.innerHTML += '<a href="#" class="csoption">' + value + '</a><br />' ;               
}

// Denne linie ser ud til at udføres før mit loop       
document.body.innerHTML += '</div>' ;
Avatar billede roenving Novice
30. juli 2003 - 16:38 #3
Har du prøvet at sætte options-variablen _før_ du går igang med at generere din nye html-kode ?-)
Avatar billede tangveje Nybegynder
30. juli 2003 - 16:59 #4
Hjælper ikke :( Men hvorfor skulle det have nogen betydning (undskyld hvis det er et dumt spm :)
Avatar billede roenving Novice
30. juli 2003 - 17:18 #5
-- det var også bare for at udelukke de nemme løsninger -- jeg kan heller ikke se, at det skulle gøre nogen forskel ...

-- næste nemme forsøg:
lav en variabel med det ny indhold og sæt det først ind efter alt er genereret !-)
Avatar billede tangveje Nybegynder
30. juli 2003 - 17:23 #6
Ja OK, det virker :) Men er det ikke lige lovlig ressource krævende? Jeg mener, mit script vil i forvejen blive lige lovlig tungt, og vil nødigt gøre det værre end nødvendigt.
Avatar billede roenving Novice
30. juli 2003 - 17:40 #7
-- det er faktisk den metode som anbefales ved document.write, da det er meget ressorcekrævende at udføre selve write-operationen -- det ville da overraske mig meget hvis det var lige omvendt med innerHTML !-)
Avatar billede tangveje Nybegynder
30. juli 2003 - 17:43 #8
OK, det vidste jeg ikke... I så fald må jeg gå ud fra det ikke er et problem :) Tak for hjælpen... points?
Avatar billede roenving Novice
30. juli 2003 - 17:47 #9
Ja tak, gerne '-)
Avatar billede roenving Novice
30. juli 2003 - 17:55 #10
-- men jeg glæder mig til at se dine -- customizable selects ?-)

-- og tak for points ;~}
Avatar billede tangveje Nybegynder
30. juli 2003 - 19:19 #11
Glæder mig også selv til at se hvordan det ender med at se ud :) Min nuværende version er så elendig at arbejde med, at selv jeg ikke ville kaste mig ud i opgaven, og jeg tror også jeg flere gange har lovet at få bikset en ny version sammen... Bedre sent end aldrig siger man jo :)
Avatar billede roenving Novice
30. juli 2003 - 19:31 #12
;O)
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