Avatar billede skwizie Nybegynder
25. oktober 2007 - 15:22 Der er 24 kommentarer og
1 løsning

setTimeout på denne

Jeg bruger denne linie til at redirecte brugeren til en anden side:

<script type="text/javascript" language="javascript">
window.setTimeout("window.location.href = "./'.$url.'"", 5000);
</script>

Jeg bruger den efter <body>, og jeg vil nu gerne have en lille forsinkelse på inden den sender videre til den ønskede side.

Hvordan gør man dette?
Avatar billede soerenlyn Nybegynder
25. oktober 2007 - 15:25 #1
Lige nu står der 5000 - dvs 5 sekunder.
Hvis du vil have større forsinkelser sætter du vel bare tallet op?
Avatar billede soerenlyn Nybegynder
25. oktober 2007 - 15:27 #2
Men hvis det ikke passer ind i formålet kan du sætte en timeout på den (som du skriver i den overskrift):

function Redirecttime(){
  window.setTimeout("window.location.href = "./'.$url.'"", 5000);
}
window.setTimeout("Redirecttime()",10000);
Avatar billede soerenlyn Nybegynder
25. oktober 2007 - 15:27 #3
Men som jeg bare gør det samme som window.setTimeout("window.location.href = "./'.$url.'"", 15000); :)
Avatar billede soerenlyn Nybegynder
25. oktober 2007 - 15:28 #4
jeg = jo*
Avatar billede skwizie Nybegynder
25. oktober 2007 - 15:29 #5
Sorry, men den linie jeg har parset virker ikke efter hensigten... Den går videre med det samme.... ;(
Avatar billede skwizie Nybegynder
25. oktober 2007 - 15:35 #6
Eller den forbliver bare på samme side...
Avatar billede skwizie Nybegynder
25. oktober 2007 - 16:06 #7
Nogle som har et svar til hvordan man kan implementere en tid?
Avatar billede soerenlyn Nybegynder
25. oktober 2007 - 17:02 #8
Jeg forstår ikke helt. Den kode du opgav fra starten, går videre med det samme ?
Avatar billede skwizie Nybegynder
25. oktober 2007 - 17:16 #9
Nej, den forbliver på samme side.
Avatar billede w13 Novice
25. oktober 2007 - 17:20 #10
"Sorry, men den linie jeg har parset virker ikke efter hensigten... Den går videre med det samme.... ;("

Her indikerer du jo ikke ligefrem, at den _ikke_ går videre til næste side. =P

Kalder du nogensinde funktionen? Altså skriver du noget sted:

Redirecttime()

?
Avatar billede soerenlyn Nybegynder
25. oktober 2007 - 17:26 #11
Jeg er også lidt lost :S
Avatar billede skwizie Nybegynder
25. oktober 2007 - 17:41 #12
OK, jeg prøver lige at klare nogle ting af her. Jeg bruger dette script:

<script type="text/javascript" language="javascript">
window.setTimeout("window.location.href = "./'.$url.'"", 5000);
</script>

Men den går IKKE videre til den definerede side, men bliver blot på den samme side!
Avatar billede soerenlyn Nybegynder
25. oktober 2007 - 17:46 #13
Okay.
Måske det er det inde i location.href?
Burde det ikke måske mere være:
window.setTimeout("window.location.href = '"+$url+"'", 5000); ?

Måske er det mig der er dårlig til javascript, man jeg synes ikke rigtigt det andet er syntaxtisk korrekt..
Avatar billede skwizie Nybegynder
25. oktober 2007 - 17:48 #14
window.setTimeout("window.location.href = "./'.$url.'"", 5000);

Grunden til denne sætning, er at jeg indsætter $url fra en PHP variabel!
Avatar billede soerenlyn Nybegynder
25. oktober 2007 - 17:53 #15
jeg kan ikke php, så hvor meget er det er php?

lige efter 'lig med'-tegnet er det gåseøjne. De stopper den 'string' man er ved at lave, og det skal den vel ikke lige der? Så mangler der vel et appostrof, da værdien af window.location.href skal være en string..
Avatar billede w13 Novice
25. oktober 2007 - 18:19 #16
Skwizie>> Du kan ikke indsætte PHP'en sådan. Lige nu er det et rod af apostroffer og anførelsestegn. Vis os mere af din PHP-kode.
Avatar billede skwizie Nybegynder
25. oktober 2007 - 20:06 #17
Det kan godt være du ikke mener man kan indsætte PHP sådan, men ikke desto mindre virkder denne kode:

<script type="text/javascript" language="javascript">
window.location.href = "./'.$url.'";
</script>

Ved godt at tiden er udeladt her, men princippet i apostroffer etc. er den samme!
Avatar billede w13 Novice
25. oktober 2007 - 22:06 #18
Ja, du kan indsætte det sådan, men jeg mente, at du er på den, når der pludselig er javascript omkring php'en, hvori der også indgår apostroffer etc. Så når du prøver at lukke f.eks. php'en kommer du måske til at åbne en javascript-string og lignende. Det bliver let noget rod. Og det virker jo heller ikke. Det ville nok være mere optimalt at lukke php-koden omkring javascript-koden og så indsætte php'en i koden med <?echo $url?>

Jeg kan hjælpe, hvis du viser mig mere kode.
Avatar billede skwizie Nybegynder
26. oktober 2007 - 08:11 #19
jeg kalder det nævnte script i en php funktion:
<body>
<?php
(noget php kode);
redirect($url);
?>
</body>

funktionen skal så sende brugeren videre efter et antal sekunder til den url der er angivet til funktionen!
Avatar billede olebole Juniormester
26. oktober 2007 - 09:14 #20
<ole>

Prøv at skrive den kode, du faktisk bruger - i stedet for småstumper af den  ;o)

/mvh
</bole>
Avatar billede skwizie Nybegynder
26. oktober 2007 - 09:19 #21
Hvorfor det...! Der er jo ikke andet end det jeg har skrevet til jer. Det andet har jo ikke noget med det at gøre...
Avatar billede soerenlyn Nybegynder
26. oktober 2007 - 11:46 #22
Prøv at så at læg din php-kode i en javascript string, så sparer vi hvert fald et par gåseøjne ved timeout-kaldet..
Avatar billede skwizie Nybegynder
26. oktober 2007 - 13:08 #23
Jeg har fundet en løsning. Det havde noget med single og double quoting at gøre, og løsningen blev:

<script type="text/javascript" language="javascript">
window.setTimeout("window.location.href = \'./'.$url.'\'", '.$time.');
</script>
Avatar billede skwizie Nybegynder
26. oktober 2007 - 13:09 #24
soerenlyn -> Da du var den tætteste på en løsning får du pointene!
Avatar billede soerenlyn Nybegynder
26. oktober 2007 - 14:51 #25
Okay - mange tak :)
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