Hi,
Auf einer HTML-Seite (Domain a.com) kann der Nutzer per JavaScript das Öffnen eines IFrames triggern. Das IFrame wird über document.createElement erzeugt (src des IFrames zeigt auf eine Seite in Domain b.com) und über appendChild in die Seite eingefügt.
damit stammen also Hauptdokument und das Dokument im iframe von verschiedenen Domains.
Um das IFrame nun wieder zu schließen, ...
Was meinst du mit "schließen"? Du kannst ein iframe nicht einfach schließen wie ein unabhängiges Fenster. Du möchtest das Element vermutlich aus dem Hauptdokument wieder entfernen, in das du es vorher dynamisch eingefügt hast?
soll der Nutzer auf einen "Schliessen"-Knopf innerhalb des _IFrames_ klicken können. Das ist wichtig, das Schliessen über einen Button im Hauptfenster ist leider keine Option.
Geht nicht. Dazu müsste ja der Javascript-Code des iframe-Dokuments auf das Elterndokument zugreifen. Das ist aber mit Javascript aufgrund der Same Origin Policy nicht möglich.
Ich habe es bereits mit self.close, window.close probiert, ohne Erfolg. Ist es also möglich, dass ein IFrame sich selbst schließt und aus dem DOM des parent-Fensters entfernt ...
Nein, nicht wenn die beiden Dokumente von unterschiedlichen Domains stammen.
und wenn nein, kennt jemand alternativen für dieses X-Domain/Frame-Problem?
Löse die Aufgabe serverseitig: Erstelle auf deinem eigenen Server, auf dem auch das Hauptdokument liegt, ein Script, das das untergeordnete Dokument nur durchreicht (quasi ein Proxy für ein ganz bestimmtes Dokument). Dann stammen aus der Sicht des Clients (Javascript) beide Dokumente von demselben Server.
Denkanstöße:
1. Was sagt der Eigentümer der eingebundenen Fremdseite? Erlaubt er das?
2. Was machen Besucher ohne Javascript?
So long,
Martin
Kleine Geschenke erhalten die Freundschaft.
Große verderben sie aber meist auch nicht.