Peter Lustig: Zufällige Hintergrundfarbe will nicht

Ich habe mir ein kleines Skript zusammengebastelt, welches beim Aufrufen der Seite eine zufällige Hintergrundfarbe aus einem Array benutzt, leider scheint irgendwo einen Fehler drin zu sein und ich finde ihn nicht.

Der Code im Head-Bereich:

function randombg() {
    var bg = new Array[2];
    bg[0] = "#B4BAC0";
    bg[1] = "#B4C0B7";
    var randbg = math.round(math.random()*bg.length);
    document.getElementsByTagName("body")[0].style.backgroundColor = bg[randbg];
}

Diese Funktion wird mit <body onload="randombg()"> aufgerufen.

Kann mir jemand sagen wo der Fehler liegt? Ich versuche meinen Code möglichst DOM-compliant zu kreieren, und keine document.write-Befehle zu benutzen.

  1. Hallo Peter Lustig,

    zum einen ist die Array-Deklaration nicht richtig
    Objektname = new Array( );
                           ^^ (Runde Klammern)

    und math wird großgeschrieben!

    Gruss
    annA

    1. zum einen ist die Array-Deklaration nicht richtig
      Objektname = new Array( );
                             ^^ (Runde Klammern)

      Hab's geändert, funktioniert immer noch nicht.

      und math wird großgeschrieben!

      Daran liegt's wohl kaum, ich habe auch schon mit math herumexperimentiert (allerdings nicht im Zusammenhang mit Hintergrundfarben) und es funktioniert tadellos.

      Gruss
      Peter Lustig

      (Ja, ich habe im ersten Post die Begrüssung vergessen)

      1. Hi Peter,

        was gibt es denn für Fehlermeldungen???
        bei mir funktioniert das:

        <html>
        <head>
        <script language="javascript1.2" type="text/javascript">

        function randombg() {
            var bg = new Array(2);
            bg[0] = "#B4BAC0";
            bg[1] = "#B4C0B7";
            var randbg = Math.round(Math.random()*bg.length);
            document.getElementsByTagName("body")[0].style.backgroundColor = bg[randbg];
        }

        </script>

        </head>
        <body onload="randombg()">
        </form>
        </body>
        </html>

        1. <script language="javascript1.2" type="text/javascript">

          ^ Lag wohl daran... hab "language" vergessen zu definieren.

          Sorry :|

          1. <script language="javascript1.2" type="text/javascript">

            ^ Lag wohl daran... hab "language" vergessen zu definieren.

            Nein, auch ohne den Teil funktioniert es...

            Gruss
            annA

            1. <script language="javascript1.2" type="text/javascript">

              ^ Lag wohl daran... hab "language" vergessen zu definieren.
              Nein, auch ohne den Teil funktioniert es...

              Oh, es lag doch an _M_ath... allerdings verstehe ich nicht warum es bei einem anderen Javascript mit kleinem m funktionierte.

        2. Hallo,

          var randbg = Math.round(Math.random()*bg.length);

          Im Beispiel werden die Werte 0 oder 1 oder 2 erhalten. Das dritte Arrayelement bg[2] existiert aber nicht. Also besser var randbg = Math.floor(Math.random()*bg.length); verwenden (aber nicht Math.round() und bg.length-1, da dann auch mal -1 entsteht).

          MfG, Thomas