Frame aus Popup ansteuern

  • Themenstarter Themenstarter antihero
  • Beginndatum Beginndatum
A

antihero

Hallo Leute,

Ich habe hier ein etwas exzentrisches Problem... Meine Hauptseite besteht aus 2 Frames. Aus einem dieser Frames öffne ich ein Popup. In diesem Popup, wird einen Liste von Links angezeigt. Wenn man auf einen dieser Links klickt, soll der Inhalt eines Frames im Hauptfenster verändert werden. Unter Mozilla & Internet Explorer funktioniert das ganz einfach (wenn auch vielleicht nicht sauber?) indem man als target den namen des Frames angibt. Das spielt dann keine Rolle, dass das PopUp in einem anderen Fenster ist. Unter Mac und dem IE 5.2 jedoch funktioniert das ganze nicht.
Da mein Chef genau diesen Browser benutzt und ich meine Homepage dort präsentieren sollte, wäre ich froh wenn jemand von euch mir einen Lösungsansatz dazu geben könnte...

Vielen Dank jetzt schon!

antihero

PS: Vielleicht wurde die Frage auch schon 1000x gestellt, ich wusste aber nicht wonach suchen. Ob mans mit Javascript lösen kann, weiss ich auch nicht, weil ich JS-technisch nicht so der Held bin, einfach verschieben wenns woanders hingehört...
 
Nunja, mit JavaScript ist da schon was zu holen, sollte auch nicht schwer sein - warum das allerdings mit dem Framenamen nicht klappt, verduzt mich etwas.

Egal, die JavaScript-Variante:
Jedes PopUp-Fenster, sofern über die Methode window.open() geöffnet, besitzt ab JavaScript1.1 innerhalb seines eigenen window-Objektes eine Eigenschaft opener, welche als Referenz wiederum zum window-Objekt des öffnenden Mutterfensters verwendet wird.

Heißt du hast im PopUp-Fenster quasi einen internen Verweis, jedoch auf das window-Objekt des Frames, aus welchem das PopUp geöffnet wurde.

Um nun frametechnisch auf einen anderen Frame innerhalb des Framesets zugreifen zu können, müsstest du erst das window-Objekt des Framesets ansteuern, dann das window-Objekt des betreffenden Frames und dann dessen Eigenschaft location modifizieren, um die angezeigte URL dieses Frames zu ändern.

Lange Rede, kurzer Sinn:
PHP:
<script type="text/javascript" language="JavaScript">
<!--

function wechsleFrame(zielFrame, url) {
    opener.parent["zielFrame"].location = url;
}

//-->
</script>
mit Aufruf wie folgt:
PHP:
<a href="url.html" onClick="wechsleFrame('hauptFrame', 'url.html'); return false;">Klick mich</a>
Das Script wäre jetzt nur für den Fall ausgelegt, dass dein Frame, den du ändern möchstest, nicht in einem verschachtelten Frameset des öffnenden Fensters liegt.

hth,
Geist
 
Vielen Dank, habe das Script nach deinen Anweisungen implementiert, und das funktioniert auch im Mac wunderbar... Bleibt natürlich das Restrisiko dass Javascript ausgeschaltet ist, aber alles kann man nicht haben... :D

Vielen Dank auf jeden Fall für die prompte Hilfe!

antihero
 

Neue Beiträge

Zurück