• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

JS: Counter problem im FF

Status
Für weitere Antworten geschlossen.

dasch

Neues Mitglied
Hey, ich bin seit ein paar Tage dran JS zu lernen, nun habe ich einen Counter in JS geschrieben der aus einer Variabel (die sich öfters wieder verändert) eine zahl ausliest und dannrunterzählt. Im Opera funktioniert es Prima, aber der Firefox muss natürlich wiede Mukken.
Der IE macht es ja wie immer dem FF nach und dort funktioniert es ebenfals nicht :(

Hier mein Quelltext:
Code:
var sekunden = seks;
var minuten = mins;

function count(){
	
	if(minuten >0){
		if(sekunden >= 0){
			if(sekunden <= 9){
				document.getElementById('sekunden').innerHTML = "0"+sekunden;
			}else{
				document.getElementById('sekunden').innerHTML = sekunden;
			}
			document.getElementById('minuten').innerHTML = minuten;
			window.setTimeout("count()", 1000);
			sekunden--;
			if(sekunden == 0){
				sekunden = 59;
				minuten--;
			}
		}else{
			sekunden = seks;
		}
	}
}
document.onload = count;
Ein Kumpel meinte es hätte schonmal funktioniert, aber jetzt geht es nicht mehr.

Gruß
Dasch
 
Was steht beim Start des Scripts in "seks", was in "mins"?
Wie lautet die Fehlermeldung?
Wenn es keine Fehlermeldung gibt, was ist das Problem? "funktioniert nicht" ist keine ausreichende Fehlerbeschreibung.

Wenn mins z.B. 0 ist, dann passiert gar nichts und es wird auch kein Timeout angestoßen.
Das selbe, wenn seks<0 ist.
Das Script zählt ja nur bis 1:00 Minuten runter, danach ist Ende.
 
sry, das hatte ich vergessen zu erwähnen:
In beiden variabeln kommt eine berechnete zahl rein.

Da JS keine Fehlermeldung ausgibt, und mein FFaddon "JSDebugger" auch keine Fehlermeldungen sagt, kann cih leider nur sagen die Fehlermeldung lautet "Es geht nicht im FF und IE"
 
sry, das hatte ich vergessen zu erwähnen:
In beiden variabeln kommt eine berechnete zahl rein.
D.h. das geht nicht genauer? Dann wirst Du Dich mit meinen Antworten bzgl. der möglichen Werte für diese Variablen zufrieden geben müssen.

kann cih leider nur sagen die Fehlermeldung lautet "Es geht nicht im FF und IE"
Dann kann Dir keiner helfen. Das ist keine ausreichende Fehlerbeschreibung.
Keiner weiß, ob überhaupt etwas angezeigt wird, ob der Timeout läuft, von wo bis wo die Anzeige läuft, ob sie zu früh aufhört, ob sie in Schritten zu zwei, fünf oder zehn Sekunden zählt, oder was. Das sind Informationen, die Du bringen musst oder einen Link, wo man explizit sieht, was der Fehler ist. Der Code alleine hilft ja nicht viel, da man nicht weiß, wie die Ausgangswerte der Variablen sind, wie die Funktion aufgerufen wird (nach dem Codeschnipsel nämlich gar nicht) usw.

Einige Vermutungen und Schwachstellen in dem Code habe ich DIr ja bereits aufgezeigt, aber dazu hast Du Dich auch nicht geäußert.

Dann ist alles nur ein Ratespiel. Willst Du hilfreiche Antworten, musst Du den Background zur Verfügung stellen.

Grüße,
-Efchen
 
Nein ich weiß nicht wie ich es anders schildern soll, im Opera zählt der runter, ein bug das er nur bis 1 zählt hab ich in meinem quelltext schon geändert, so dass mein neuer code nun so aussieht:
Code:
var sekunden = seks;
var minuten = mins;

function count(){
	
	if(minuten >=0){
		if(sekunden >= 0){
			if(sekunden <= 9){
				document.getElementById('sekunden').innerHTML = "0"+sekunden;
			}else{
				document.getElementById('sekunden').innerHTML = sekunden;
			}
			document.getElementById('minuten').innerHTML = minuten;
			window.setTimeout("count()", 1000);
			sekunden--;
			if(sekunden == 0){
				sekunden = 59;
				minuten--;
			}
		}else{
			sekunden = seks;
		}
	}
}
document.onload = count;
Und hier ist der geforderte link zum Script: KLICK

UNd wie gesagt im Opera Tählt der ganz normal runter von bsp 9 auf 0 inkl sekunden.
Im FFund im IE aber passiert garnichts so das ich gar nicht sagen kann woran es liegt :(

Ich hoffe das kann dir helfen mir bei meinem Problem zu helfen
Gruß
Dasch
 
Es sieht wohl so aus, als würde document.onload=count; nicht funktionieren, denn in der JavaScript-Konsole kommt ja auch tatsächlich keine Fehlermeldung.
Ich bin jetzt nicht der 100%ige JS-Experte, aber ich würde das über den EventHandler ins body-Tag einbauen.

Code:
<body onload="count()">
Vielleicht muss man bei Deiner Variante aber auch nur Klammern hinzufügen, ist ja immerhin ein FUnktionsaufruf.
 
Ich persönlich mache das lieber per:

HTML:
window.onload = function() { xy(); };
In deinem Fall würde das dann so ausschauen:

HTML:
window.onload = function() { count(); };
So vermeide ich, dass ich meinen HTML Code mit diversen Event-Handlern vollschreibe. Geht auch alles in ner externen JS-Datei.

MfG

NewLord
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben