wh!te: Internet Explorer: Object Expected, keine Ausgabe

Beitrag lesen

Hallo,

ich habe ja schon ein paar mal hier Fragen zu Javscript und zu meinem Countdown-Timer gestellt. Jetzt habe ich folgendes Problem: In allen Browsern funktioniert mein Script ausgezeichnet, alle Countdowns laufen wie geplant. Nur im Internet Explorer erfolgt garkeine Ausgabe und es wird der Fehler
"Object Expected" für Zeile 10 ausgegeben. In Zeile 10 steht der <body>-Tag mit folgendem Inhalt:

<body onload="lade()">

In der function lade() steht folgendes:

function lade() {  
	differenz();  
	ausgabeZielDatum(ziel);  
	}

die function differenz ist der eigentliche Countdown, die zweite function ist zur Ausgabe des Zieldatums in ein Feld. Wie gesagt, der Internet Explorer gibt nur den Fehler aus. Ich habe auch schon probiert, in den "onload" Teil eine andere Funktion zu setzen (ich hatte vorher nur "differenz" drin, da hats noch funktioniert), aber auch damit passiert nichts.

Wäre echt nett, wenn mir da jemand helfen könnte! Bei Fragen stehe ich gerne zur Verfügung.

Danke!

Ich schreib hier nochmal kurz die wichtigsten Funktionen rein:

	var ziel = findnextBday(11, 24);  
	var minuten = 0;  
	var sekunden = 0;  
	var stunden = 0;  
	var tage = 0;  
	var monate = 0;  
	var monat;  
	var tag;  
	var ereignis = "Weihnachten.";  
	  
	function findnextBday(month, day) {  
		var jahr = 2007;  
		var aktuell = new Date();  
		var aktuellTime = aktuell.getTime();  
		var datum = new Date(jahr, month, day);  
		var unterschied = datum - aktuellTime;  
		while (unterschied < 0) {  
				jahr = jahr + 1;  
				datum = new Date(jahr, month, day);  
				unterschied = datum - aktuellTime;  
			}				  
		ziel = new Date(jahr, month, day);  
		return ziel;  
	}  
	  
	function aendereTimer(name) {  
		if (name == "geburtstag") {  
			monat = 3;  
			tag = 7;  
			ziel = findnextBday(monat, tag);  
			ereignis = "xyz Geburtstag hat."  
		}  
  
               //hier stehen noch ein paar daten nach dem gleichen Muster wie  
  
//jetzt folgt die Möglichkeit aus einem eigenen Datum einen Countdown zu machen  
		else if (name == "eigen") {  
			var eingabeMonat = document.eingabe.monat.value - 1;  
			while (eingabeMonat > 11 || eingabeMonat < 0) {  
				eingabeMonat = prompt("Der Monat muss einen Wert von 1 bis 12 haben!", "Bitte hier einen gültigen Wert eingeben!");  
			}  
			var eingabeTag = document.eingabe.tag.value;  
			while (eingabeTag > 31 || eingabeTag < 0) {  
				eingabeTag = prompt("Der Tag muss einen Wert von 1 bis 31 haben!", "Bitte hier einen gültigen Wert eingeben!");  
			}  
			var eingabeJahr = document.eingabe.jahr.value;  
			var eingabeStunde = document.eingabe.stunde.value;  
			while (eingabeStunde > 24 || eingabeStunde < 0) {  
				eingabeStunde = prompt("Der Stundenwert muss im Bereich von 0 bis 24 liegen!", "Bitte hier einen gültigen Wert eingeben!");  
			}  
			var eingabeMinute = document.eingabe.minute.value;  
			while (eingabeMinute > 59 || eingabeMinute < 0) {  
				eingabeMinute = prompt("Der Minutenwert muss zwischen 0 bis 59 liegen!", "Bitte hier einen gültigen Wert eingeben!");  
			}  
			var eingabeSekunde = document.eingabe.sekunde.value;  
			while (eingabeSekunde > 59 || eingabeSekunde < 0) {  
				eingabeSekunde = prompt("Der Sekundenwert muss zwischen 0 und 59 liegen!", "Bitte hier einen gültigen Wert eingeben!");  
			}  
			if (eingabeStunde != "" && eingabeMinute != "" && eingabeSekunde != "" && eingabeJahr != "") {  
				ziel = new Date(eingabeJahr, eingabeMonat, eingabeTag, eingabeStunde, eingabeMinute, eingabeSekunde);  
			}  
			else if (eingabeJahr == "" && eingabeTag != "" && eingabeMonat != "") {  
				ziel = findnextBday(eingabeMonat, eingabeTag);  
			}  
			else {  
			ziel = new Date(eingabeJahr, eingabeMonat, eingabeTag);  
			}  
			ereignis = "der gewählte Zeitpunkt erreicht wird.";  
			return false;  
		}  
	}  
	  
	function ausgabeZielDatum(x) {  
		var gesuchterTag = x.getDate();  
		if (gesuchterTag < 10) {  
			gesuchterTag = "0" + gesuchterTag;  
		}  
		var gesuchterMonat = x.getMonth() + 1;  
		if (gesuchterMonat < 10) {  
			gesuchterMonat = "0" + gesuchterMonat;  
		}  
		var gesuchtesJahr = x.getFullYear();  
		document.eingabe.jahr.value = gesuchtesJahr;  
		document.eingabe.monat.value = gesuchterMonat;  
		document.eingabe.tag.value = gesuchterTag;  
		document.eingabe.stunde.value = "";  
		document.eingabe.sekunde.value = "";  
		document.eingabe.minute.value = "";  
  
	}	  
	  
  
        //Das ist jetzt die eigentliche Countdown Funktion  
	function differenz() {	  
		var aktuell = new Date();  
		var startTime = ziel.getTime();  
		var aktuellTime = aktuell.getTime();  
		var diff = startTime - aktuellTime ;  
		if (diff >= 0) {  
		sekunden = Math.floor((diff/1000));  
		while (sekunden >= 60){  
			sekunden = sekunden - 60;  
		}  
		if (sekunden < 10) {  
			sekunden = "0" + sekunden;  
		}  
		minuten = Math.floor((diff/(1000*60)));  
		while (minuten >= 60){  
			minuten = minuten - 60;  
		}  
		if (minuten < 10) {  
			minuten = "0" + minuten;  
		}  
		stunden = Math.floor((diff/(1000*60*60)));  
		while (stunden >= 24){  
			stunden = stunden - 24;  
		}  
		tage = Math.floor((diff/(1000*60*60*24)));  
		while (tage >= 30){  
			tage = tage - 30;  
		}  
		monate = Math.floor((diff/(1000*60*60*24*30)));  
		  
	document.getElementById('ausgabebereich').innerHTML = "Noch " + monate + bezmonate + tage + beztage + stunden + bezstunden + minuten + bezminuten + sekunden + bezsekunden + " bis " + ereignis;	  
	}  
  
//das ganze mit bezmonate etc wird vorher belegt, habe ich wegen der übersichtlichkeit weggelassen  
  
	else {  
	document.getElementById('ausgabebereich').innerHTML = "Vorbei!";  
	}  
setTimeout("differenz()", 100);  
	}	  
</script>  

Das ist erstmal das wichtigste aus dem Javascript Teil

Jetzt gibt es noch folgende HTML Elemente:

<p class="ausgabe" id="ausgabebereich">text</p> <!--Ausgabebereich für den Countdown-->  
<table border="1" cellspacing="0" cellpadding="5">  
  <caption>  
    Mögliche Ereignisse  
  </caption>  
  <tr>  
    <th scope="col">Geburtstage</th>  
    <th scope="col">Ferien</th>  
    <th scope="col">Sonstiges</th>  
  </tr>  
  <tr>  
    <td><a href='javascript:aendereTimer("xyz")'>xyz</a></td>  
    <td><a href="javascript:aendereTimer('herbstferien')">Herbstferien</a></td>  
    <td><a href="javascript:aendereTimer('besuch')">Besuch</a></td>  
  </tr>  
  <!--Ein paar weitere Tabellenzeilen mit anderen Daten-->  
</table>  
  
<h2>Eigenes Datum verwenden:</h2>  
<form action="#" method="get" name="eingabe">  
Datum (Tag . Monat . Jahr): <input type="text" name="tag" size="2" /> . <input type="text" name="monat" size="2" /> . <input type="text" name="jahr" size="4" /> <i> Jahr frei lassen für jährliche Ereignisse</i><br />  
Uhrzeit &nbsp;&nbsp;&nbsp;&nbsp;(Std : Min : Sek): <input type="text" name="stunde" size="2" />&nbsp;&nbsp;:&nbsp;&nbsp;<input type="text" name="minute" size="2" />&nbsp;&nbsp;:&nbsp;&nbsp;<input type="text" name="sekunde" size="2" /> <i> Funktioniert nur mit Angabe des Jahres</i><br />  
<input type="submit" onClick="return aendereTimer('eigen')" value="Eigenes Datum verwenden" />  
</form>