Firefox interpretiert nicht 2 x JS in body onload
Thomas
- javascript
Hallo!
Mir ist aufgefallen, dass der Firefox 2 JavaScript Befehle im Body-Tag nicht interpretiert. Der Browser interpretiert nur der erste Befehl. Der IE 6 interpretiert jedoch alle 2 Anweisungen fehlerfrei.
Code:
<body onload="clock(); countdown()">
Weiß jemand, wie man diesen Fehler beheben kann?
Hi,
Weiß jemand, wie man diesen Fehler beheben kann?
ich würde raten, aber indem man den JavaScript-Fehler aus der ersten Funktion entfernt? Eigentlich sollte FF nämlich beide ausführen, es könnte aber sein, dass er abbricht wenn er einen Fehler in der ersten Funktion findet.
MfG
Rouven
Hi,
Weiß jemand, wie man diesen Fehler beheben kann?
ich würde raten, aber indem man den JavaScript-Fehler aus der ersten Funktion entfernt? Eigentlich sollte FF nämlich beide ausführen, es könnte aber sein, dass er abbricht wenn er einen Fehler in der ersten Funktion findet.MfG
Rouven
Hier der Code des 1. Scriptes: Ich vermute, dass vielleicht der fehler bei day ist. Aber der IE zeigt ja an, dass keine Fehler vorhanden sind.
<script language="JavaScript" type="text/javascript">
<!--
var eventdate = new Date(2006, 5, 20, 16, 0, 0);
function zweistellig(n) {
s=""
if(n<10) s+="0"
return s+n.toString();
}
function countdown() {
d=new Date();
count=Math.floor((eventdate.getTime()-d.getTime())/1000);
if(count<=0){
days.value ="----";
hours.value="--";
mins.value="--";
secs.value="--";
return;
}
secs=zweistellig(count%60);
count=Math.floor(count/60);
mins=zweistellig(count%60);
count=Math.floor(count/60);
hours=zweistellig(count%24);
count=Math.floor(count/24);
days=count;
document.getElementById("tag").firstChild.data = days;
document.getElementById("stunde").firstChild.data = hours;
document.getElementById("minute").firstChild.data = mins;
document.getElementById("sekunde").firstChild.data = secs;
setTimeout("countdown()", 1000);
}
-->
</script>
Hi,
Hier der Code des 1. Scriptes: Ich vermute, dass vielleicht der fehler bei day ist.
Wieso vermutest Du? Wieso guckst Du nicht in die Javascript-Konsole? Dafür ist die doch da ...
<script language="JavaScript" type="text/javascript">
<!--
var eventdate = new Date(2006, 5, 20, 16, 0, 0);function zweistellig(n) {
s=""
if(n<10) s+="0"
return s+n.toString();
}function countdown() {
d=new Date();
count=Math.floor((eventdate.getTime()-d.getTime())/1000);
if(count<=0){
days.value ="----";
Wo soll days herkommen? In Deinem Code ist nichs zu sehen, was days definiert. Also muß ein Zugriff auf eine Eigenschaft des undefinierten days fehlschlagen.
cu,
Andreas
if(count<=0){
days.value ="----";Wo soll days herkommen? In Deinem Code ist nichs zu sehen, was days definiert. Also muß ein Zugriff auf eine Eigenschaft des undefinierten days fehlschlagen.
cu,
Andreas
Soll ich dann days den Wert 0 geben, wenn der Countdown abgelaufen ist?
days.value ="0";
Hier ist der Clock- Code:
Ich hab jetzt mal einen JS-Test gemacht und der IE hat gesagt, dass im Clock Code der Fehler liegt. Wisst Ihr wo der Fehler liegt? Ich kenn mich mit JS noch nicht so richtig aus.
Code:
<script language="JavaScript" type="text/javascript">
<!--
function clock() {
if (!document.layers && !document.all) return;
var digital = new Date();
var hours = digital.getHours();
var minutes = digital.getMinutes();
var seconds = digital.getSeconds();
if (hours <= 9) hours = "0" + hours;
if (minutes <= 9) minutes = "0" + minutes;
if (seconds <= 9) seconds = "0" + seconds;
dispTime = hours + ":" + minutes + ":" + seconds;
if (document.layers) {
document.layers.pendule.document.write(dispTime);
document.layers.pendule.document.close();
}
else
if (document.all)
pendule.innerHTML = dispTime;
setTimeout("clock()", 1000);
}
-->
</script>
Hi,
if (!document.layers && !document.all) return;
der Firefox wird also die Funktion nicht weiter ausführen.
Ist aber auch besser so, weil
pendule.innerHTML = dispTime;
nur von einem sehr ratefreudigem Browser dahingehend ausgelegt werden kann, dass ein Element wie z.B. <div id="pendule"></div> angesprochen werden sollte. Und außerdem: wer hat einen Nutzen von einer weiteren am Bildschirm angezeigten Uhr?
freundliche Grüße
Ingo
Ich hab jetzt mal einen JS-Test gemacht und der IE hat gesagt, dass im Clock Code der Fehler liegt. Wisst Ihr wo der Fehler liegt? Ich kenn mich mit JS noch nicht so richtig aus.
Code:
Dieser code unterscheidet sich fundamental von dem code den du uns vorher https://forum.selfhtml.org/?t=131365&m=849744 serviert hast.
if (!document.layers && !document.all) return;
In deinem letzten Skript hattest du noch DOM Methoden verwendet, warum setzt du jetzt auf einmal auf völlig veraltete Objekte von Browsern der 4'er Generation?
Struppi.
Mir ist aufgefallen, dass der Firefox 2 JavaScript Befehle im Body-Tag nicht interpretiert. Der Browser interpretiert nur der erste Befehl. Der IE 6 interpretiert jedoch alle 2 Anweisungen fehlerfrei.
Code:
<body onload="clock(); countdown()">
Weiß jemand, wie man diesen Fehler beheben kann?
Hallo Thomas,
Warum arbeitest du nicht mit dem üblichen Ausschlußverfahren und näherst dich so sukzessive der Ursache deines Problems.
Dein ursprünglicher Verdacht ist falsch wie der folgende kleine Test beweist.
<script type="text/javascript">
function test1()
{alert ("Alert 1");}
function test2()
{alert ("Alert 2");}
</script>
<body onload="test1(); test2()">
Gruß Wastl