Timon.Freitag: Hintergrundfarbe in jeden Frame ändern?

Hallo!

Ich habe jetzt bei SelfHTML alles danach duchgesucht. Nur mit den JavaScript/JScript-Frame-Beschreibungen geht das nicht so richtig!

Hier Das Skript:

<script>
<--
function ChangeBgColor(Farbe) {
  for(var i=0; i <= parent.frames.length; i++) {
    frames[i].document.getElementsByTagName("body")[0].bgColor = Farbe;
  }
}
//--></script>

Hier der HTML-Code zum aufrufen der Funktion:

<font face="Tahoma,Verdana"><b>Hintergrundfarbe: </b>
<a href="javascript:ChangeBgColor('#FFCCFF');">Rosa</a> |
<a href="javascript:ChangeBgColor('#6699FF');">Blau</a>

Warum tut sich nicht's?

In der JavaScript Konsole (Mozilla Firefox 1.0.1) wird dieser Fehler angezeigt:
frames[i] has no properties

Fehler-Zeile:
    frames[i].document.getElementsByTagName("body")[0].bgColor = Farbe;

Weiß jemand Rat?

Gruß,
Timon.

  1. Hi,

    parent.frames
    frames[i]

    fällt Dir hier nicht ein kleiner aber wesentlicher Unterschied auf? ;-)

    freundliche Grüße
    Ingo

    1. Hi,

      parent.frames
      frames[i]

      fällt Dir hier nicht ein kleiner aber wesentlicher Unterschied auf? ;-)

      freundliche Grüße
      Ingo

      Ja... jetzt schon!!!

      Aber, warum geht dieser Skript jetzt nicht:

      <script>
      function ChangeBgColor(Farbe) {
        Farbe = '#' + Farbe;
        for(var i=1; i <= parent.frames.length; i++) {
          with(parent.frames[i].document) {
            getElementsByTagName("body")[0].bgColor = Farbe;
          }
      }
      </script>

      Firefox meint, dass ich drauf nicht zugreifen kann..., warum?

      1. Hi,

        for(var i=1; i <= parent.frames.length; i++) {
            with(parent.frames[i].document) {

        Lies mein anderes Posting (https://forum.selfhtml.org/?t=102697&m=631682) nochmal.

        cu,
        Andreas

        --
        Warum nennt sich Andreas hier MudGuard?
        Schreinerei Waechter
        Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
  2. Hi,

    <script>

    da fehlt das type-Attribut.

    <--
    function ChangeBgColor(Farbe) {
      for(var i=0; i <= parent.frames.length; i++) {

    Denk mal drüber nach. Du hast z.B. 1 Frame, dann ist parent.frames.length = 1.
    Du fängst bei 0 mit der Numerierung an. Welches ist die höchste vorkommende Nummer?
    Und bis zu welcher Nummer würde die Schleife in diesem Fall gehen?

    frames[i].document.getElementsByTagName("body")[0].bgColor = Farbe;

    Daß da was fehlt, hat Ingo ja schon bemerkt.

    Ich würde aber statt des HTML-Attributs lieber die CSS-Eigenschaft ändern …

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    Schreinerei Waechter
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. Hi,

      <script>

      da fehlt das type-Attribut.

      Ich weiß... das Script war ja nur so auf die schnelle. Und eigentlich nimmt jeder Browser als Alternative JavaScript!

      Ich würde aber statt des HTML-Attributs lieber die CSS-Eigenschaft ändern …

      Hab ich auch schon gehabt!

      Gruß,
      Timon