Content ausserhalb eines Frameset ausgeben

Hallo zusammen

Ich habe historisch bedingt, ein Framedesign mit 3 Frames. (Header, Navi, Content)

Nun gebe ich in einer bestimmten Situation beim Klick im Navi Frame eine Fehlerseite aus, die im Content Frame erscheint. Ist es irgendwie möglich, diese Fehlerseite ausserhalb der Frames auszugeben, also über den ganzen Bildschirm.

Vielen Dank für eure Hilfe

Hallo zocker,

was ist mit body, dem übergeordneten Element von deinen Frames?

Hilft dir das hier: http://de.selfhtml.org/css/eigenschaften/positionier… ?

Grüße Roman

nicht bei einem framset.

In a Frameset document, the outermost FRAMESET element takes the place of BODY and immediately follows the HEAD.

bei einem iframe schon .

Ein Fenster öffnen mit JavaScript .

Hallo Thomas,

Danke für den Hinweis :wink:

Grüße Roman

Ein Fenster öffnen mit JavaScript .

Das Problem ist, dass ich die komplette WebApplikation sperren und auf der ErrorPage ein Link zur Login Seite zur Verfügung stellen will. Gibt es keine Lösung mit HTML oder HTTP Headers. JS möchte wenn möglich vermeiden…

Moin,

„über den ganzen Bildschirm“ geht natürlich nicht, denn weder hast Du Zugriff auf den Bildschirm der Nutzer, noch ist die einzige Stelle, in die Du Content schreiben kannst, nämlich der Viewport, nahezu niemals auch nur annähernd so groß wie der Bildschirm.

Aber mit target="_top" kannst Du ein Frameset sprengen und da eine neue Seite laden. Geht aber nicht in allen HTML-Varianten.

Liebe Grüße,
-Efchen

Hi,

Das Problem ist, dass ich die komplette WebApplikation sperren
und auf der ErrorPage ein Link zur Login Seite zur Verfügung
stellen will. Gibt es keine Lösung mit HTML oder HTTP Headers.

serverseitig lässt sich nicht steuern, worin die Seite geladen wird.
Du kannst entweder dem Link zur Loginseite das Attribut target="_top" geben oder dem Link zur Fehlerseite.

Gruß
Ingo

Konnte men Problem so lösen, dass ich auf der angezeigten ErrorPage folgendes Javascript einbaute:

<!–
if (window != top){
top.location.href = location.href;
}
// -->

und der Aufruf der Seite wie folgt:

response().setHeader(„0; url=/error.html“,„Refresh“);

Danke nochmals für eure Hilfe

Moin,

Konnte men Problem so lösen, dass ich auf der angezeigten
ErrorPage folgendes Javascript einbaute:

Und wenn der Nutzer JS abgeschaltet hat?
Dann bleibt das Frameset trotzdem stehen.

Eine wirksame Sperre ist das nicht.

Womöglich ist es an der Zeit, das „historisch bedingte“ Frameset abzuschaffen?

Grüße,
-Efchen

Hi,

Konnte men Problem so lösen, dass ich auf der angezeigten
ErrorPage folgendes Javascript einbaute:

<!–
if (window != top){
top.location.href = location.href;
}
// -->

wie schon gesagt wurde, kann JS deaktiviert sein - also keine sichere Lösung.

und der Aufruf der Seite wie folgt:

response().setHeader(„0; url=/error.html“,„Refresh“);

auch nicht jeder lässt sich auf diese Weise weiterleiten!

Insgesamt also leider untauglich.

Wenn ich den Sachverhalt richtig deute, müsstest Du viel früher serverseitig agieren, nämlich jeden Link in der Navigation auf die Fehlerseite mit entsprechendem Target-Attribut ausgeben.

Gruß
Ingo

wie schon gesagt wurde, kann JS deaktiviert sein - also keine
sichere Lösung.

Den Check, ob JS deaktiviert ist, wird vorgängig durchgeführt und würde ebenfalls zu einer Fehlerausgabe führen.

auch nicht jeder lässt sich auf diese Weise weiterleiten!

Ich überschreibe nun den kompletten Response anstatt zur Fehlerseite weiterzuleiten.

Danke für die Inputs