/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Hvad sker der her?
Fra : Kim Lykkegaard


Dato : 18-02-02 16:21

Hej Alle.

Jeg tvivler ikke om det er en dum lille fejl, men jeg kan simpelthen ikke få
øje på den, så er der nogen der kan forklarer mig hvorfor dette lille stykke
kode kan køre igennem løkken 2 gange hvorpå den går ned...

Kim

----- kode -----
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Untitled</title>
<script language="JavaScript" type="text/javascript">
<!-- Start hiding JavaScript statements
MyArray = new Array(4);
MyArray[0]="<a href='Link'>http://www.url.dk/test.html'>Link 1</a>";
MyArray[1]="<a href='Link'>http://www.url.dk/test.html'>Link 2</a>";
MyArray[2]="<a href='link'>http://www.url.dk/test.html'>link 3</a>";
MyArray[3]="<a href='Link'>http://www.url.dk/test.html'>Link 4</a>";
current_link = 0;
no_of_link = MyArray.length;
function RotateLink() {
if (current_link == no_of_link) {
current_link = 0;
}
document.write(MyArray[current_link]," [", current_link, "]<br>");
current_link++;
setTimeout("RotateLink()", 1000);
}
-->
</script>
<noscript>
</noscript>
</head>


<body>


<script language="JavaScript" type="text/javascript">
<!-- Start hiding JavaScript statements
RotateLink();
-->
</script>


</body>
</html>

-------------------





 
 
Carsten Nielsen (18-02-2002)
Kommentar
Fra : Carsten Nielsen


Dato : 18-02-02 17:15

Kim Lykkegaard wrote in dk.edb.internet.webdesign.clientside:
> Hej Alle.
>
> Jeg tvivler ikke om det er en dum lille fejl, men jeg kan simpelthen ikke få
> øje på den, så er der nogen der kan forklarer mig hvorfor dette lille stykke
> kode kan køre igennem løkken 2 gange hvorpå den går ned...
>

Hvis man bruger document.write/document.writeln efter at dokumentet er renderet
færdigt vil statementet implicit åbne et nyt document.
Dette nye document kender ikke 'MyArray' idet det kun er declareret på den
oprindelige side.
Du får derfor en 'Error: Object expected'


Opret en tabel el. lign hvor du skifter indholdet med din rotator function.

mvh.
Carsten


--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Carsten Nielsen (18-02-2002)
Kommentar
Fra : Carsten Nielsen


Dato : 18-02-02 17:31

Carsten Nielsen wrote in dk.edb.internet.webdesign.clientside:
> Kim Lykkegaard wrote in dk.edb.internet.webdesign.clientside:
> > Hej Alle.
> >
> > Jeg tvivler ikke om det er en dum lille fejl, men jeg kan simpelthen ikke få
> > øje på den, så er der nogen der kan forklarer mig hvorfor dette lille stykke
> > kode kan køre igennem løkken 2 gange hvorpå den går ned...
> >
>
> Hvis man bruger document.write/document.writeln efter at dokumentet er renderet
> færdigt vil statementet implicit åbne et nyt document.
> Dette nye document kender ikke 'MyArray' idet det kun er declareret på den
> oprindelige side.
> Du får derfor en 'Error: Object expected'
>

RETTELSE! :-/

Det er faktisk ikke fordi funktionen går ned på 'MyArray', men derimod fordi siden
efter andet gennemløb kun indeholder linket 'Link2'!
Kaldet til setTimeout("RotateLink()", 1000); i andet gennemløb får derfor
browseren til at smide en fejl idet siden nu ikke indeholder funktionen
'RotateLink() - som jo er blevet overskrevet...!

Det ændrer dog ikke ved den kendsgerning, at man skal være meget varsom meg at
bruge document.write(ln) på en side efter at den er renderet færdig...

mvh.
Carsten

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Kim Lykkegaard (18-02-2002)
Kommentar
Fra : Kim Lykkegaard


Dato : 18-02-02 19:21

> RETTELSE! :-/
> Det er faktisk ikke fordi funktionen går ned på 'MyArray', men derimod
fordi siden
> efter andet gennemløb kun indeholder linket 'Link2'!
> Kaldet til setTimeout("RotateLink()", 1000); i andet gennemløb får derfor
> browseren til at smide en fejl idet siden nu ikke indeholder funktionen
> 'RotateLink() - som jo er blevet overskrevet...!

Jeg har kikke på koden, og prøvet at slå op i mine bøger, men et eller andet
går min næse forbi, hvorfor forsvinder mit array?

Som jeg tror/troede tingene fungerede, var setTomeout() et kald til mit
window objekt om at eksekvere mit script efter C millisekunder. Samt når jeg
havde defineret et array så var det der - til siden blev unloadet - men
fordi jeg (gen)kalder en funktion så loades vel ikke hele siden igen? Så jeg
kan ikke gennemskue hvor mit Array forsvinder hen, og hvad jeg gør for at
løse mit problem.

Undskyld hvis det er dumt spurgt, men jeg prøver at forstå det

> Det ændrer dog ikke ved den kendsgerning, at man skal være meget varsom
meg at
> bruge document.write(ln) på en side efter at den er renderet færdig...

Det skal jeg huske. tak.

mvh.

Kim



Carsten Nielsen (18-02-2002)
Kommentar
Fra : Carsten Nielsen


Dato : 18-02-02 23:38

Kim Lykkegaard wrote in dk.edb.internet.webdesign.clientside:
> > RETTELSE! :-/
> > Det er faktisk ikke fordi funktionen går ned på 'MyArray', men derimod
> fordi siden
> > efter andet gennemløb kun indeholder linket 'Link2'!
> > Kaldet til setTimeout("RotateLink()", 1000); i andet gennemløb får derfor
> > browseren til at smide en fejl idet siden nu ikke indeholder funktionen
> > 'RotateLink() - som jo er blevet overskrevet...!
>
> Jeg har kikke på koden, og prøvet at slå op i mine bøger, men et eller andet
> går min næse forbi, hvorfor forsvinder mit array?
>
> Som jeg tror/troede tingene fungerede, var setTomeout() et kald til mit
> window objekt om at eksekvere mit script efter C millisekunder. Samt når jeg
> havde defineret et array så var det der - til siden blev unloadet - men
> fordi jeg (gen)kalder en funktion så loades vel ikke hele siden igen? Så jeg
> kan ikke gennemskue hvor mit Array forsvinder hen, og hvad jeg gør for at
> løse mit problem.
>

Prøv at udskifte din RotateLink() med nedenstående funktion...

function RotateLink() {
if (current_link == no_of_link) {
current_link = 0;
}
document.getElementById("Place4RotatingLinks").innerHTML =
MyArray[current_link]+ " [" + current_link + "]" ;
current_link++;
setTimeout("RotateLink()", 1000);
}


...og indsæt flg. linie umiddelbart under dit <body> tag...

<p id="Place4RotatingLinks">-</p>


Så skulle det virke!

mvh.
Carsten

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Kim Lykkegaard (20-02-2002)
Kommentar
Fra : Kim Lykkegaard


Dato : 20-02-02 23:24

Hej Carsten

> > Jeg har kikke på koden, og prøvet at slå op i mine bøger, men et eller
andet
> > går min næse forbi, hvorfor forsvinder mit array?
> Prøv at udskifte din RotateLink() med nedenstående funktion...

Mange tak for hjælpen.

Kim



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste