Dieser Code wird dann aktiv, wenn der Benuzter die Seite wechselt. Wenn Sie also 5 Seiten haben und nach 5 Minuten (oder hier nach 10 Sekunden) wird Seite 3 erreicht, dann erscheint beim Laden der Seite der Alert.
Kurz zur Erklärung: PHP-Code wird immer zwischen den Seiten aktiv. JavaScript Code läuft bei den Befragten im Browser und kann so auch innerhalb der Seite aktiv werden.
Was SIe vermutlich haben möchten, wäre das hier:
if (!isset($timeout)) {
$timeout = strtotime('+10 seconds'); // zu Test zwecken
registerVariable($timeout);
}
$timeLeft = $timeout - time();
replace('%time%', $timeLeft);
html('
<script type="text/javascript">
window.setTimeout(function() {
alert("I am an alert box!");
}, 1000 * %time%);
</script>
');
Was passiert da? Der PHP-Code schaut, wie viel Zeit noch verfügbar ist und speichert das in den Platzhalter %time%.
Und das html()
bindet den JavaScript-Code ein, welcher dann window.setTimeout()
aufruft. Das startet den Timer innerhalb der Seite. Und nach Ablauf der Zeit (1000-mal das was wir vorhin als verbleibende Zeit definiert haben, weil diese Funktion Millisekunden erwartet) wird die Funktion aufgerufen, die innerhalb von window.setTimeout()
definiert wird. Das ist ziemlich verschachtelt und daher nicht ganz einfach zu lesen. Man könnte es auch so schreiben:
html('
<script type="text/javascript">
function showAlert() {
alert("I am an alert box!");
}
window.setTimeout(showAlert, 1000 * %time%);
</script>
');