Liebes SoSci Survey-Team,
ich habe einen (zehntelsekundengenauen) Countdown eingerichtet (der an sich gut funktioniert hat) und bemerkt, dass dieser bereits zu zählen beginnt, wenn die Seite noch nicht vollständig geladen ist. Somit zählt der Timer bereits vor dem "Sichtbar werden" des anzuzeigenden Stimulus der Seite, wodurch sich die Bearbeitungszeit um einige Zehntelsekunden verkürzt. Daher soll eine Funktion implementiert werden, die das vollständige Laden der Seite kennzeichnet. (Es soll dabei nicht wie üblich ein Zeitdifferenz-Verweis aus dem php Code erfolgen. Daher stellt der Verweis %remain2% einen absoluten Zeitwert dar.)
Folgendes Script verwende ich momentan:
> <script type="text/javascript">
<!--
function weiter() {
SoSciTools.submitPage();
}
window.addEventListener("load", function() {
var pageLoad = new Date();
});
// Countdown anzeigen
var date0 = new Date();
var timeout = pageload.getTime() + %remain2%;
function updateCountdown() {
// Zeit berechnen
var date = new Date();
var time = Math.ceil((timeout - date.getTime()) / 100); // Verbleibende Zeit in Sekunden
// Zeit anzeigen
var out = document.getElementById("remain");
if (!out) {
return;
}
while (out.lastChild) {
out.removeChild(out.lastChild);
}
var seconds = Math.floor(time /10);
var ms = String(time - 10 * seconds );
var display = "0" + seconds + ":" + ms + "0";
var displayNode = document.createTextNode(display);
out.appendChild(displayNode);
}
// Initialisierung der Weiterleitung
SoSciTools.attachEvent(window, "load", function(evt) {
// Weiter-Knopf ausblenden (optional)
SoSciTools.submitButtonsHide();
// Zusätzlicher Timer für die Aktualisierung des Countdowns
window.setInterval(updateCountdown, 100);
updateCountdown();
// Timer für automatische Weiterleitung starten
window.setTimeout(weiter, %remain2%);
});
// -->
</script>
Es scheint jedoch so zu sein, dass der load-Befehl nicht richtig eingebunden bzw. nicht korrekt mit der "Zeitmessung" (var timeout) verknüpft ist. In der Browser-Fehlerkonsole wird die Fehlermeldung "can't find variable PageLoad" ausgegeben.
Danke und viele Grüße
Daniel