Javascript: Framebefreiung unter verschärften Auflagen?

  • Moin,
    ich kämpfe hier grade mal wieder mit JavaScript und einem Framebefreiungsscript bzw. automatischem Nachladen eines Framesets.
    Irgendwie komme ich mit den verschiedenen Scripten nicht klar, oder aber meine Anforderungen sind zu hoch.


    Folgendes ist vorhanden.
    Diversere Dateien:
    - domain.tld/datei1.htm
    - domain.tld/datei2.htm
    - domain.tld/datei3.htm
    - domain.tld/datei4.htm
    usw.


    Weiterhin verschiedene Framesets:
    - domain.tld/frameset1.htm
    - domain.tld/frameset2.htm
    - domain.tld/frameset3.htm
    usw.


    Nun möchte ich, dass die Dateien nicht innerhalb fremder Framesets (also fremder Domains) aufgerufen werden können. Sollte dies der Fall sein, soll automatisch frameset1.htm nachgeladen werden (bis hierher kein Problem).


    Darüber hinaus sollen die Dateien datei3.htm und datei4.htm auch ohne Frameset aufgerufen werden können, während bei datei1.htm und datei2.htm das frameset1.htm nachgeladen wird (auch machbar).


    Nun kommen wir zu meinem Problem:
    Ich möchte darüber hinaus noch erreichen, dass alle Dateien dateiX.htm über FramesetX.htm aufgerufen werden können, ohne dass Frameset1.htm nachgeladen wird. Also soll frameset1.htm nur nachgeladen werden, wenn die Dateien in einem fremden Frameset stecken.
    Und das bekomme ich irgendwie nicht gebacken.


    Wahrscheinlich ist die Lösung ganz nahe - wer nennt sie mir?


    Carsten

  • Vorschlag:


    lege in den Framesets eine JavaScript-Variable an, wobei der Wert das Frameset angibt (z.B. var carstens_frameset = "1");


    auf den einzelnen Seiten kannst Du nun


    a) prüfen, ob die Variable im parent überhaupt vorhanden ist und, falls ja, einen gültigen Wert hat (Entscheidung: eigenes oder fremdes Frameset oder gar kein Frameset)


    falls in eigenem Frameset:


    b) anhand des Variablenwertes prüfen, in welchem Deiner eigenen Framesets die Seite geladen ist (Entscheidung: anderes Frameset nachladen oder nicht)


    Gruß
    Michael

    History: Motorola e930, t720, RAZR V3, MOTORAZR maxx V6, MOTOROKR Z6, MOTOROKR E8, MOTOZINE ZN5, Samsung S8000 Jet

  • Hallo Michael,
    erstmal besten Dank.
    Leider jedoch sind meine Kenntnisse in JavaScript sehr rudimentär, um nicht zu sagen quasi nicht vorhanden. :rolleyes:


    Daher wäre ich in dem Fall für ein "Fertiggericht" sehr dankbar. ;)


    Carsten

  • Wie wär's mit einer Überprüfung á la:

    Code
    <script language="JavaScript">
    if (top.document.URL.toLowerCase().substr(0,18) != "http://domain.tld/")
    top.location.href = "http://domain.tld/frameset1.htm";
    </script>


    Damit kann die Datei in einem beliebigen Frameset angezeigt werden -- solange es von derselben Domain kommt. Die 18 muß natürlich angepaßt werden, je nachdem wie lang der Domainname ist.


    Gruß,


    Henning.

    ________________________

  • Hier mal einfach etwas umfangreicherer Code, aus dem Du Dir das benötigte rauspicken kannst ;-) bzw. bei Unklarheiten einfach rückfragen
    (ich habe auf XNeo's Vorschlag aufgebaut, direkt die URL zur Prüfung zu verwenden an Stelle einer "Kennzeichnungsvariablen"):



    Gruß
    Michael

    History: Motorola e930, t720, RAZR V3, MOTORAZR maxx V6, MOTOROKR Z6, MOTOROKR E8, MOTOZINE ZN5, Samsung S8000 Jet

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!