Avatar billede netro Nybegynder
26. oktober 2003 - 17:03 Der er 20 kommentarer og
1 løsning

Tilfældig visning af slogans

Jeg har brug for en funktion, der hvert 10. sek kan udtrække et tilfældigt element i et array og vise det.

Jeg er kommet frem til følgende, men herefter går jeg i stå, da funktionen på en eller anden måde v.h.a. SetTimeout skal kaldes hver gang, et slogan har været vist i 10 sek. Kan nogen hjælpe mig videre?

function findslogan() {
  var slogans = new Array("slogan1","slogan2","slogan3")
  var slogan = slogans[Math.floor(Math.random() * slogans.length)]

(...)
Avatar billede roenving Novice
26. oktober 2003 - 17:07 #1
function findslogan() {
  var slogans = new Array("slogan1","slogan2","slogan3");
  var slogan = slogans[Math.floor(Math.random() * slogans.length)];
  setTimeout('findslogan()',10000);
}

'-)
Avatar billede thesurfer Nybegynder
26. oktober 2003 - 17:14 #2
roenving> kan man få en list over dine smileys, og hvad de betyder? :)
Avatar billede roenving Novice
26. oktober 2003 - 17:17 #3
Special-betydninger gør jeg ikke så meget i, men den du ser ovenfor er den der følger med, når jeg lægger et svar ...
Avatar billede netro Nybegynder
26. oktober 2003 - 17:23 #4
Ja, der manglede jo ikke meget. Jeg sad og tænkte i nogle helt andre baner. Men hvad skriver jeg der, hvor jeg vil have sloganet udskrevet?

document.write(?);
Avatar billede thesurfer Nybegynder
26. oktober 2003 - 17:25 #5
jeg gætter på:
document.write(slogan);
Avatar billede roenving Novice
26. oktober 2003 - 17:25 #6
På det sted, hvor du vil have slogannet udskrevet sætter du en div:

<div id="sloganDiv"></div>

og så i funktionen:

function findslogan() {
  var slogans = new Array("slogan1","slogan2","slogan3");
  var slogan = slogans[Math.floor(Math.random() * slogans.length)];
  docuemnt.getElementById('sloganDiv').innerHTML = slogan;
  setTimeout('findslogan()',10000);
}
Avatar billede netro Nybegynder
26. oktober 2003 - 17:31 #7
Så bør funktionen vel egentlig se sådan ud, for at det fungerer i alle browsere, eller tager jeg fejl?

function findslogan() {
  var slogans = new Array("slogan1","slogan2","slogan3");
  var slogan = slogans[Math.floor(Math.random() * slogans.length)];
  if (document.getElementById) {
        document.getElementById("sloganDiv").innerHTML = slogan;
    } else if (document.all) {
        document.all.sloganDiv.innerHTML = slogan;
    } else if (document.layers) {
        document.sloganDiv.document.open();
        document.sloganDiv.document.write(slogan);
        document.sloganDiv.document.close();
    }
  setTimeout('findslogan()',10000);
}
Avatar billede roenving Novice
26. oktober 2003 - 17:38 #8
-- du er ihvertfald bedre til at sdaue til document end jeg er !-)

-- og, ja, det ser rigtigt ud, men jeg er selv holdt op med at understøtter v4-browserne, som er dem du henter hjem med den ekstra kode ...
Avatar billede netro Nybegynder
26. oktober 2003 - 17:39 #9
sdaue til document ? :)
Avatar billede netro Nybegynder
26. oktober 2003 - 17:40 #10
Nåh, stave... ;o)
Avatar billede roenving Novice
26. oktober 2003 - 17:40 #11
*lol*
Avatar billede netro Nybegynder
26. oktober 2003 - 17:44 #12
Jeg synes jeg roder rundt i det her. Jeg skal jo også have kaldt funktionen, når siden indlæses. Kan jeg ikke gøre det sådan, hvis jeg vil undgå at sætte det i onLoad?

<script type="text/javascript">
  findslogan();
</script>
Avatar billede roenving Novice
26. oktober 2003 - 17:47 #13
Jo, men så skal du sætte koden efter </body>-tagget !-)
Avatar billede roenving Novice
26. oktober 2003 - 17:48 #14
-- altså den sidste ...
Avatar billede netro Nybegynder
26. oktober 2003 - 17:51 #15
Ja, så fungerer det fint. Men hvad er grunden til, at det skal stå efter body-sektionen?
Avatar billede roenving Novice
26. oktober 2003 - 17:54 #16
For at være sikker på, at du ikke kommer til at adressere et objekt, som ikke er færdiginitialiseret ...
Avatar billede netro Nybegynder
26. oktober 2003 - 17:55 #17
Det giver mening. Mange tak for hjælpen :)
Avatar billede roenving Novice
26. oktober 2003 - 18:00 #18
-- og jeg siger tak for points ;~}
Avatar billede thesurfer Nybegynder
26. oktober 2003 - 18:24 #19
roenving> hmm.. hvor mange </body> tags plejer du at sætte? :)
Avatar billede roenving Novice
26. oktober 2003 - 18:26 #20
Sjældent mere end eet pr. dokument, men det er da sket, at jeg har sat flere, f.eks. da jeg en dag opdagede en væsentlig fejl i en solid koger ,-)
Avatar billede thesurfer Nybegynder
26. oktober 2003 - 18:32 #21
hehehe
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