Feststellen in welchem Frame eine Seite läuft

Thomasio

Erfahrenes Mitglied
Ich habe eine Seite mit einem <iframe>

Code:
<iframe name="iFrame" src="FrameSeite.php">

Gibt es irgendeine Möglichkeit innerhalb von FrameSeite.php festzustellen, ob diese in ihrem <iframe> geöffnet ist oder nicht?
 
Mit PHP geht es nicht, aber mit Javascript
Code:
if (window.location.href === window.top.location.href)
{
  // nicht in Frame
}
else
{
  // in Frame
}
 
Danke, das hilft schon mal.
Kann ich da auch irgendwie den Namen "iFrame" abfragen, oder nur ob Toplevel oder nicht?

Zusatzfrage:

JavaScript läuft ja auf dem Client, sprich wenn der Client feststellt, dass er nicht im Frame ist, hat der Server ihm bereits die gesamte Seite geschickt.
Kann ich am Client die Ausführung und/oder Anzeige vom Rest der Seite abbrechen?
Vermutlich nur indem ich ihn automatisch auf eine Fehlerseite umleite?
 
Zuletzt bearbeitet:
Was heißt denn bei dir, dass du es abbrechen willst? Javascript wird frühestens ausgeführt, wenn die ganze Seitenstruktur geladen wurde, aber noch nicht die dazugehörigen Dateien. Somit ist ein Abbrechen der ganzen Seite kaum möglich.
 
Du könntest auch an die URL, die im I-Frame geöffnet wird, ein GET-Parameter anhängen, den du dann im PHP-Script abfragst.
 
@saftmeister, wie stellst du dir das vor? Ich meine, wenn der link kopiert wird oder gesagt wird in neuem Tap öffnen, dann wäre doch eine fehlinfo weitergegeben oder irre ich mich da?
 
Nein da irrst du dich nicht. Es ist genau sicher wie JS ;-)

Es ging auch nicht um Sicherheit sondern nur um Machbarkeit.
 
Wenn ein User es schaffen sollte die Adresse ohne <iframe> zu öffnen ist das kein Beinbruch, nur ein Schönheitsfehler.
Darum werde ich wohl einfach mit JavaScript eine automatische Umleitung einbauen, das dürfte in den meisten Fällen funktionieren.

Danke auf jeden Fall für die Antworten.
 
Zurück