<p align="right"><font size="4">Weiter am Ende des Songs in:</font><br></p>
<script type="text/javascript">
<!--
var countdown = 280;
var countdownDisplay;
var countdownTimer;
// "submit0" ist der Weiter-Knopf,
// mit "buttonsAuto" kann man auch den Zurück-Knopf ausblenden
var buttonID = "submit0";
function countdownStart() {
// Next button
var button = document.getElementById(buttonID);
// Create countdown element
countdownDisplay = document.createElement("div");
var cd = countdownDisplay;
cd.style.display = "inline-block";
cd.style.textAlign = "center";
cd.style.fontWeight = "bold";
cd.style.width = button.offsetWidth + "px";
cd.style.height = button.offsetHeight + "px";
// Init countdown
button.parentNode.appendChild(countdownDisplay);
countdownRefresh();
// Hide next button
button.style.display = "none";
// Start countdown
countdownTimer = window.setInterval(countDown, 1000);
}
function countDown() {
if (countdown > 1) {
countdown--;
countdownRefresh();
} else {
window.clearTimeout(countdownTimer);
// Display nextbutton
var button = document.getElementById(buttonID);
button.style.display = "";
// Remove countdown
button.parentNode.removeChild(countdownDisplay);
}
}
function countdownRefresh() {
// Clear
while (countdownDisplay.lastChild) {
countdownDisplay.removeChild(countdownDisplay.lastChild);
}
// Display
var content = document.createTextNode(countdown + " Sek.");
countdownDisplay.appendChild(content );
}
SoSciTools.attachEvent(window, "load", countdownStart);
// -->
</script>
Ich habe diesen Code als Textbaustein in einer Seite eingebaut. Im Fragenkatalog hat der die Kennung S113. Er sorgt dafür, dass der Weiter-Button nach 280 Sekunden erscheint. Auf der Seite gibt es eine Frage, die eine Pflichtauswahl enthält. Klickt man den erschienenen Weiterbutton ohne zuvor die Frage beantwortet zu haben, geht der Timer von vorne los und der Weiterbutton verschwindet wieder. Was ich möchte: Selbst wenn man vergessen hat die Frage zu beantworten, soll man dazu aufgefordert werden, dies dann erledigen müssen, aber nicht mehr den ganzen Timer abwarten müssen.
Es scheint eine Lösung mit diesem Code zu geben:
if (!isset($timerShown)) {
text('XX01'); // Der HTML-/JavaScript-Code für den Timer, z.B. abgelegt in XX01
$timerShown = true;
registerVariable($timerShown); }
Leider kann ich nicht herausfinden wo ich diesen einbinden muss.