Funktionsaufruf beim Starten der Seite

the_royal

Mitglied
Hallo Community
Ich habe ein kleines Provlem mit dem automatischen aufrufen einer Funktion.
Es geht darum, nach einer gewissen inaktiven Zeit automatisch weiterzuleiten.
Das Script habe ich von hier übernommen:
http://www.web-toolbox.net/webtoolbox/zeit/watch-click.htm

Hier mal der Code der Javascript Code:

HTML:
<script type="text/javascript">

// Datei die nach dem timeout aufgerufen wird
TimedOutUrl = "?pid=1";

// Vorgabezeit bis zur Weiterleitung
var Vorgabe = 10;


var sec = 0;

function Down() {
sec--;
// statuszeilen-info
window.status = "Weiterleitung in : " + sec + " s";

// Anfang nur für die DEMO
document.getElementById('Zeit').value = sec + " s";
// Ende nur für die DEMO



// weiterleitung bei timeout
if (sec == 0) {
window.location.href = TimedOutUrl;
}
else down = setTimeout("Down()", 1000);
}

function zaehlen() {
sec = 0 + Vorgabe;
Down();
}

setTimeout("zaehlen()", 1000);


// bei mousedown zähler zurücksetzen
function spaeter() {
sec = 0 + Vorgabe;
return
}
</script>

Hier der Aufruf im Header:

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>paarcours.ch - Die Nacht der 1000 Fragen</title>
<link href="style.css" rel="stylesheet" type="text/css"/>
</head>
<body onMousedown="spaeter()" onLoad="zaehlen()"> 
<div id="container">...

Kann jemand das Problem sehen?

Besten Dank im Voraus für eure Hilfe!

Gruss the_royal

NACHTRAG:
Hab gerade duch ein alert() in der Funktion getestet, ob er überhaupt in die Function kommt... und das funktioniert...
dann liegt das Problem wahrscheinlich nicht am Aufruf, sondern in der Function selbst... sieht da jemand ein Problem?

Gruss the_royal
 
Getestet und funktioniert.
Bis auf die Tatsache das ich ein element mit der ID Zeit hinzufügen musste.
Keine Ahnung ob du das hast, denn dein HTML Code steht ja nicht vollständig da.

Nachtrag:
Event-Handler sollten übrigens durchgängig klein geschrieben werden. Auch wenn es auch ohne funktioniert.
 
Zuletzt bearbeitet:
Nein, hab ich nicht.. :/
Hier mein ganzer erzeugter Code:

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>paarcours.ch - Die Nacht der 1000 Fragen</title>
<link href="style.css" rel="stylesheet" type="text/css"/>
</head>
<body onMousedown="spaeter()" onLoad="zaehlen()"> 
<div id="container">
<div id="header"></div>
<div id="content">
<div id="middle">
<div id="textcont">
<h1>Ihre Frage:</h1>
<form name="frageformular" action="?pid=2" method="POST">

<textarea cols="50" rows="12" font="sans-serif" name="frage"></textarea><br><br>
<input type="submit" value="Frage speichern"></input>
</form>

</div>
</div>
<div id="rightBox">
<div id="rightBoxText">
Bitte beachten Sie, dass Ihre Frage nicht länger als 200 Zeichen sein darf. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
</div>
</div>


<script type="text/javascript">

// Datei die nach dem timeout aufgerufen wird
TimedOutUrl = "?pid=1";

// Vorgabezeit bis zur Weiterleitung
var Vorgabe = 10;


var sec = 0;

function Down() {
sec--;
// statuszeilen-info
window.status = "Weiterleitung in : " + sec + " s";

// Anfang nur für die DEMO
document.getElementById('Zeit').value = sec + " s";
// Ende nur für die DEMO



// weiterleitung bei timeout
if (sec == 0) {
window.location.href = TimedOutUrl;
}
else down = setTimeout(Down(), 1000);
}

function zaehlen() {
sec = 0 + Vorgabe;
Down();
}

setTimeout("zaehlen()", 1000);


// bei mousedown zähler zurücksetzen
function spaeter() {
sec = 0 + Vorgabe;
return
}
</script>

<div id="footer"></div>

<p align="center"><a href="?pid=0">Home</a> | <a href="?pid=1">Show</a> | <a href="?pid=3">Admin</a></p>

</div>
</div>
</body>
</html>

Wo muss ich den jetzt dieses Element hinzufügen? :confused:

Gruss the_royal
 
Völlig egal. Such dir ein schönes Plätzchen aus :)
Es geht nur darum das ansonsten document.getElementById('Zeit') einen Fehler wirft.

Mal wieder Nachtrag:
Nachdem das value attribut von dem Zeit element angesprochen wird solltest du ein Element nehmen das auch ein value attribut hat.
Beispielsweise eine Textbox.
 
Niiice dankeschön! =)
Kann ich das auch irgendwie ausblenden? so im sinn von setVisible= false? :P oder einfach irgendwo hin schieben wo mans eh nicht sieht?

Gruss the_royal
 
Warum nicht.
Du kannst es aber auch ganz einfach weg lassen und alle referenzen ( ist eh nur eine ) aus dem javascript entfernen.
 
haha, er schrieb ja in seinem beispiel noch "nur für demo"....:p
Vielen Dank für deine schnelle und kompetente Hilfe!

Gruss the_royal
 

Neue Beiträge

Zurück