stephan: Objektname dynamisch erzeugen

Folgendes, für Euch wahrscheinlich nicht sehr schwiegriges, Problem:

Ich habe auf einer Seite mehrere IFRAMEs, die bei onfocus hellgrau
hinterlegt werden sollen.
Die Funktion highlight möchte ich folgendermaßen aufrufen:

<IFRAME onfocus="highlight('<? echo $f_name; ?>');">

Über <? echo $f_name; ?> wird mittels PHP der Name erzeugt.

Bei Aufruf der Funktion

function highlight(f_name) {
window.f_name.document.bgColor='#FDFDFD';
}

zeigt JS an, dass window.f_name.document kein Object sei.
f_name wird also nicht in den übergeben Framenamen übersetzt.

Wie ist eine dynamische Erzeugung des Objektnamens möglich ?

Danke im vorraus....

  1. Hallo Stephan,

    Du hast 2 Fehler gemacht. Einmal mußt du dem Frame selbst einen Namen geben und im JS fragst du nach dem iframe f_name. Den gibt es natürlich nicht.

    richtig sieht es z.B. so aus (natürlich als php-Datei gespeichert:

    <? $f_name="abc"; ?>
    <html>
    <head>
    <title>Farbe ändern</title>
    </head>
    <body>
    <IFRAME src="test.htm" onfocus="highlight('<? echo $f_name; ?>');" name="<? echo $f_name; ?>">
    </iframe>

    <script language="JavaScript">
    <!--
    function highlight(f_name)
    {
    window[f_name].document.bgColor='#ff0000';
    }

    //-->
    </script>
    </body>
    </html>

    Viele Grüße

    Antje