Vraag & Antwoord

Webprogrammeren & scripting

Javascript setTimeout

1 antwoord
  • Zie [url=www.swordfactsbenelux.nl/modx]hier[/url] (MODx site, wordt nog aan gewerkt). In de rechterkolom heb ik een inloggedeelte staan voor het forum. Als je daar ingelogd bent staat er een link om uit te loggen. Dat uitloggen moet vanzelfsprekend door het forum gebeuren, maar ik wil dat dit op de achtergrond gebeurd en vervolgens die div (rechterkolom) ververst. Dit doe ik als volgt: [code:1:6039a56d5b]if($user->data['is_registered']) { echo "Welkom " . $user->data['username']; echo ' (<a href="#" onClick="load(\''.$phpbb_root_path .'ucp.php?mode=logout&sid='.$user->data['session_id'].'\', \'none\'); load(\'http://www.swordfactsbenelux.nl/modx/assets/site/phpbbhook.php\',\'rechterkolom\')">Uitloggen</a>)'; }[/code:1:6039a56d5b]De load-functie die je daar ziet zorgt ervoor dat in een div een externe pagina laadt. In dit geval wordt dus in de div "none" (die CSS display:none heeft) de uitloglink gevolgd en in de div "rechterkolom" wordt opnieuw de phpbbhook geladen. Dit werkt op zich, maar omdat het uitloggen een seconde duurt, wordt de phpbbhook te snel opnieuw geladen. Hoewel je dus eigenlijk wel uitgelogd wordt, zie je dit niet. Ik wilde hier daarom een timeout aan toevoegen, zodat 1 of 2 seconden na de eerste load-opdracht pas de tweede load-opdracht uitgevoerd wordt. Ik dat dit als volgt te doen: [code:1:6039a56d5b]echo ' (<a href="#" onClick="load(\''.$phpbb_root_path .'ucp.php?mode=logout&sid='.$user->data['session_id'].'\', \'none\'); setTimeout(\'load(\'http://www.swordfactsbenelux.nl/modx/assets/site/phpbbhook.php\',\'rechterkolom\')\', 5000)">Uitloggen</a>)';[/code:1:6039a56d5b](even op 5000 ms gezet om zeker te zijn dat er een vertraging in zit). Dit heeft echter als enige effect dat die hele link niet meer werkt. Blijkbaar zit dus ergens een fout, maar ik kom er niet uit. Kan iemand de fout aanwijzen?

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.