Leider konnte ich das Problem auch dieses Mal nach langem rumprobieren, umstellen und rätseln nicht lösen. Ich vermute, dass sich in meinem Code irgendwo ein Fehler eingeschlichen hat, den ich partout nicht finden kann..
Das ist nun mein aktueller Code:
<script type="text/javascript">
<!--
var countdown = 30;
var countdownDisplay;
var countdownTimer;
var initTime = new Date();
var timeOut = initTime.getTime() + countdown;
// "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() {
var now = new Date();
countdown = timeOut - now.getTime();
if (countdown > 1) {
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>
<script type="text/javascript">
<!--
// Funktion zum Einblenden der Knöpfe
function showButtons() {
var buttons = document.getElementById("buttonsAuto");
// Den normalen Anzeigemodus wiederherstellen
buttons.style.visibility = "";
}
// Nach dem Laden der Seite das Script starten
SoSciTools.attachEvent(window, "load",
function() {
// Die Knöpfe identifizieren
var buttons = document.getElementById("buttonsAuto");
// Die Knöpfe ausblenden (mit Platzhalter)
buttons.style.visibility = "hidden";
// Den Timer starten
window.setTimeout(showButtons, 300000); // Nach 1 Min = 60.000 ms
}
);
// Ablauf der Zeit als Variable $timeout speichern
if (!isset($timeout)) {
$timeout = strtotime('+30 seconds');
registerVariable($timeout);
}
// -->
// JavaScript zur Anzeige der verbleibenden Zeit
$timeLeft = $timeout - time();
// Statt JS01 muss hier die Kennung des Textes eingetragen werden
show('JS01', array(
$timeLeft
));
</script>
Was genau bewirkt die 1000 in der Zeile " countdownTimer = window.setInterval(countDown, 1000);" eigentlich? Egal was ich daran drehe und wende, es scheint für das Ergebnis keinen Unterschied zu machen.
Danke schon mal für die Rückmeldung!