Daniel Schmidt-Loebe: Aufrufen von selbsterstellten Funktionen auf Frameseiten

Hallo zusammen,

erstmal kurze Vorgeschichte: Meine Seite http://www.2004-abitur.de habe ich so erstellt, dass sie sowohl mit Frames als auch ohne dargestellt werden kann. Die Funktionalität mit Frames ist noch nicht vollkommen abgeschlossen, funktioniert jedoch bereits im Wesentlichen. Zwischen den einzelnen Versionen kann mittels des Parameters nf=0/1 in der query der URL gewechselt werden. http://www.2004-abitur.de?nf=1 ist ohne Frames, http://www.2004-abitur.de?nf=0 ist mit Frames.
Soweit die Vorgeschichte.

In der Sektion "Galerien" habe ich nun folgendes Problem:
Wird die Seite ohne Frames dargestellt, öffnen sich die Bildfenster beim Klicken auf ein Vorschaubild ohne Probleme so wie ich es will.
Wird die Seite hingegen mit Frames dargestellt, meldet der MSIE "Objekt erwartet" und Mozilla "openwin is not defined".

Der einzige Unterschied zwischen (zum Beispiel den folgenden zwei Seiten) ist aber eben nur das (Nicht-)Vorhandensein von Frames:
http://www.2004-abitur.de/index.php?id=38&nf=0&path=20040122.k13-lkphysikgsf (mit Frames)
http://www.2004-abitur.de/index.php?id=38&nf=1&path=20040122.k13-lkphysikgsf (ohne Frames)

Die Funktion openimg sieht (je nach Galerie von Skript ein bisschen anders generiert) wie folgt aus:

function openimg(breite,hoehe,xfile,fileid)
{
 imgwin = window.open('index.php?id=41&nf=1&subframe=1&url=img/galleries/20040122.k13-lkphysikgsf/'+xfile+'.jpg', fileid, 'width='+breite+',height='+hoehe+',resizable=no,location=no,menubar=no,toolbar=no,status=no,left=50,top=50,scrollbars=no,dependent=yes');
 imgwin.focus();
}

Der Link auf den Previews hat hingegen folgendes Schema:

href="javascript:openimg(500,375,'IMG_2396','200401221312');"

Wäre nun schön, wenn mir jemand von euch helfen könnte, das Problem so zu lösen, dass sowohl auf der Frame- als auch auf der Nicht-Frame-Seite die Funktion zum öffnen des Bildfensters eindwandfrei funktioniet. Bin da jetzt recht ratlos. Vielen Dank schonmal.

Viele Grüße, Daniel

  1. Hallo Daniel,

    unter Mac OS X geht's sowohl mit Safari als auch mit dem aktuellsten IE, unter Netscape 7.1 und Firefox 0.8 allerdings nicht (selbe Fehlermeldung wie bei Dir). Scheint also eine Browser-Geschichte zu sein.
    Leider hab' ich keinen konkreten Fehler gefunden, deshalb muß ich raten - evtl. stößt sich Mozilla an dem base target-Tag. Ich könnte mir vorstellen, daß das base-Tag auch beim suchen von Javascript-Funktionen verwendet wird, und deshalb im Frameset selbst gesucht und natürlich nicht gefunden wird. Probier' mal aus, ob's ohne geht.

    Simon

    1. Hallo Simon,

      danke vielmals, du hast den richtigen Denkansatz gehabt! Da der Funktionsaufruf ja in einem Link (href='javascript:...) geschieht, muss hier das target berücksichtigt werden.
      Ich hab das jetzt so gelöst, dass ich ihn in ein onClick geschrieben habe, wo das target nicht mehr beachtet wird. (<a href="javascript:void(0);" onClick="openimg(....);">)

      Viele Grüße, Daniel