J. Otto: Digitaleuhr mit Römischenzahlen stürtz bei Mozilla immer ab?

Beitrag lesen

Mein Javaspript "Digitaleuhr mit Römischenzahlen" stürzt bei Mozilla immer ab? Un im Explorer gehts? Warum? (is klar ich bin zu blöd) Aber waskann ich besser machen?

<meta http-equiv="Content-Language" content="de">  
<script type="text/javascript">  
<!--  
function start() {  
 time();  
 window.setInterval("time()", 1000);  
}  
function time() {  
 var now = new Date();  
 hours = dec2rom(now.getHours());  
 minutes = dec2rom(now.getMinutes());  
 seconds = dec2rom(now.getSeconds());  
  
  
    hoursb = now.getHours();  
 minutesb = now.getMinutes();  
 secondsb = now.getSeconds();  
  
  
      function dec2rom (dec)  
  {  
    var dec = '' + dec;  // Converts the decimal "dec" to a string  
    while (dec.substr(0, 1) == '0')  { dec = dec.substring(1, length); }  // Remove zeroes in front to avoid converting to the octal system  
    var num = parseInt(dec);  // Converting string to decimal  
    var thousand = 0;  // Counts, how often we substracted 1000 from the decimal  
    while (num > 1000)  { num -= 1000; thousand++; }  // Required to lower the number  
    dec = num + '';  // Overwrites "dec" with the new - under circumstances lower - number  
    var rN = '';  // Prepare empty string (the result)  
    var length = dec.length;  // Length of the string  
    var adds = new Array('I', 'X', 'C', 'M');  // These are letters which can be placed next to eacht other (8 = "VIII"), sorted asc.  
    var noAdds = new Array('V', 'L', 'D');  // These letters cannot be put next to each other ("VV" does not exist), sorted asc.  
  
    for (var i = 0; i < length; i++)  // This loop will extract each digit from the decimal and handle its "translation"  
    {  
      var d = dec.substr(i, 1);  // Actual digit of "dec"  
      var pos = length - 1 - i;  // Reverse position in arrays  
      if (d == 0)  { continue; }  // The Romans did not know the zero  
      else if ( (d == 1) || (d == 2) || (d == 3) )  // Letters, that are added (like "III")  
      {  
        for (var j = 0; j < d; j++)  { rN += adds[pos]; }  // A loop that addes 1, 2 or 3 times the given letter (like "III", "XXX")  
      }  
      else if (d == 4)  { rN += adds[pos] + noAdds[pos]; }  // Adds two letters, if the digit is "4"; in case of 4: "IV"  
      else if (d == 5)  { rN += noAdds[pos]; }  // Simply add the non-addable signs ("V", "L", "D")  
      else if ( (d == 6) || (d == 7) || (d == 8) )  // Comparable to case "1", "2" or "3"  
      {  
        rN += noAdds[pos];  // Sign, that is used in case "5"  
        for (var k = 5; k < d; k++)  { rN += adds[pos]; }  // 1, 2 or 3 the given letter (like "III", "XXX")  
      }  
      else if (d == 9)  { rN += adds[pos] + adds[pos + 1]; }  // Comparable to "4", but only with addable letters  
    }  
  
    for (var m = 0; m < thousand; m++)  { rN = 'M' + rN; }  // At beginning, we substracted "thousand" times 1000; now, we add them  
  
   Ergebnis = rN.toUpperCase();  // Writes the Roman string in capital letters in the Roman text input  
   return Ergebnis;  
  }  
 thetime = (hours < 10) ? "0" + hours + ":" : hours + ":";  
 thetime += (minutes < 10) ? "0" + minutes + ":" : minutes + ":";  
 thetime += (seconds < 10) ? "0" + seconds : seconds;  
  
 element = document.getElementById("time");  
 element.innerHTML = thetime;  
    thetimeb = (hoursb < 10) ? "0" + hoursb + ":" : hoursb + ":";  
 thetimeb += (minutesb < 10) ? "0" + minutesb + ":" : minutesb + ":";  
 thetimeb += (secondsb < 10) ? "0" + secondsb : secondsb;  
  
 element = document.getElementById("timeb");  
 element.innerHTML = thetimeb;  
  
  
}  
  
//-->  
</script>  
</head>  
<body onload="start();">  
  <center>  
  
<table border="1" cellspacing="1" style="border-collapse: collapse" bordercolor="#111111" id="AutoNumber1">  
  <tr>  
    <td width="100%">  
  
    <table border="0" cellspacing="0" bordercolor="#111111"  cellpadding="0" style="border-collapse: collapse">  
  <tr>  
      <td width="124" height="124" >&nbsp;</td>  
      <td width="200" height="124" >&nbsp;</td>  
      <td width="124" height="124" >&nbsp;</td>  
    </tr>  
  <tr>  
      <td width="124" height="200" >&nbsp;</td>  
      <td width="200" height="200" border="1" style="border-style: solid; border-width: 1">  
      <font face="Arial" size="2">  
      <p id="time"  align="center">  
      Text  
      <p id="timeb" align="center">Text</p>  
      </font>  
      </td>  
      <td width="124" height="200" >&nbsp;</td>  
    </tr>  
  <tr>  
      <td width="124" height="124" >&nbsp;</td>  
      <td width="200" height="124" >&nbsp;</td>  
      <td width="124" height="124" >&nbsp;</td>  
    </tr>  
</table>  
  
</td>  
  </tr>  
</table>  
</center>