Avatar billede mskjoldp Novice
10. februar 2007 - 21:16 Der er 6 kommentarer og
1 løsning

setTimerout fejler

Hey E

Hvad skal der til for at nedenstående script når til setTimeout?

function timerClose(manr,navn,hvad,redirect){
alert(navn+ ' (' +manr+') '+hvad+redirect)
if (redirect="")
{
setTimeout('window.close()', 1);
}
else
{
window.location.assign(redirect)
}
}

redirect variablen virker ok, den rigtige sti komemr til functionen, men selvom redirect = undefined køres scriptet setTimerout ikke.

/Skjold
Avatar billede mskjoldp Novice
10. februar 2007 - 21:19 #1
rettelse:
if (redirect=="")

virker: redirect jf. værdi
window.location.assign(redirect)
Avatar billede mskjoldp Novice
11. februar 2007 - 14:19 #2
Er der nogen der kan hjælpe med setTimeout? har jeg sat if sætningen forkert op?
Avatar billede mskjoldp Novice
11. februar 2007 - 14:30 #3
Dette virker for nuværende:
function timerClose(manr,navn,hvad,redirect){
var href = redirect
alert(navn+ ' (' +manr+') '+hvad)
if (href=="")
{
setTimeout('window.close()', 1);
}
else
{
window.location.assign(href)
}
}

Jeg ved ikke helt hvad forskellen er, men redirect er smidt i en variabel (href)

nogen forklaringer herpå? = points
Avatar billede umle-keera Nybegynder
12. februar 2007 - 16:22 #4
Den tomme streng er ikke lig med undefined, derfor køres blokken med setTimeout aldrig.

hvis du i stedet skriver if (!redirect) burde den blok blive udført.
Avatar billede mskjoldp Novice
12. februar 2007 - 19:35 #5
Ok, hvad betyder !redirect? hvad står ! for?
Avatar billede umle-keera Nybegynder
12. februar 2007 - 20:27 #6
! er en negering. Den tager det omvendte.
Nu vil mange så sige at det omvendte af undefined ikke rigtig giver mening, men javascript er lidt specielt, idet alle følgende evaluerer til false:

    * false
    * null
    * undefined
    * unknown
    * (int) 0
    * (Empty string) ''

Negerer man altså dit argument 'redirect', vil dette blive evalueret til falsk og blive negeret, hvormed din if er opfyldt og setTimeout blokken vil blive kørt.
Avatar billede mskjoldp Novice
13. februar 2007 - 10:05 #7
takker
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