Moritz Rogalli: änderung von tabellenhintergrundsfarbe aus anderem frame

Hi! Ich hab folgendes script:
<script type="text/javascript">
<!--
function Farbeaendern(heini, kaestchen, Farbe) {
parent.heini.document.getElementById(kaestchen).setAttribute('bgColor',Farbe);
}
--></script>

und ich rufe mit

<a onclick="Farbeaendern('oben', '345', '#ffeecc')" href="#">Farbe ändern</a>

die Funktion auf. die datei wird in einem frameset geladen, der obere frame heisst oben, darin befindet sich eine tabellenzelle mit der id 345. trotzdem ändert sich die farbe nicht. wenn ich anstatt heini oben reinschreibe in die funktion und die parameter übergabe des framenamens weglass, dann funzt das script. wenn ichs aber so mache, funzt es nicht. ich kann aber keinen fehler entdecken.

Wenn ihr was wisst behaltets nich für euch ;-)

Danke im vorraus

MfG

Moritz Rogalli

  1. Hi! Ich hab folgendes script:
    <script type="text/javascript">
    <!--
    function Farbeaendern(heini, kaestchen, Farbe) {
    parent.heini.document.getElementById(kaestchen).setAttribute('bgColor',Farbe);
    }

    fenster = eval("parent."+heini);
    fenster.document.getElementById(kaestchen).setAttribute('bgColor',Farbe);

    sollte jetzt gehen...

  2. Hi Moritz,

    Dein Fehler: Man kann grundsätzlich keine Objekte (Objekt: Frame Oben) auf diese Weise ändern.

    Deshalb:

    function Farbeaendern(heini, kaestchen, Farbe) {
    parent.frames[heini].document.getElementById(kaestchen).setAttribute('bgColor',Farbe);

    Grüße

    CK

  3. Nochwas: Nie mit "eval" arbeiten! Das funktioniert zwar, macht den Script aber langsamer da doppelt geparst werden muß.