Master Ace: Fremde Links im frameset öffnen

moinsen moinsen

Wie kann ich verhindern das fremde Links (z.b. von suchmaschine) eine Seite in meinen Web "_top" öffnen und nicht in dem frame in die es gehört.
mit einen javascript (das wäre toll!!!!)
Mit meta robots content noindex... (das ist doch doof)

Für die hilfe schon mal danke

  1. Hallo Master!

    Wie kann ich verhindern das fremde Links (z.b. von suchmaschine) eine Seite in meinen Web "_top" öffnen und nicht in dem frame in die es gehört.

    Niemandes Seite "gehört" in irgendeinen frame...

    Gruß,

    Kirsten

    1. Hallo!

      Niemandes Seite "gehört" in irgendeinen frame...

      Ich schliesse mich Kirstens Meinung an!

      Es ist das mindeste an Respekt anderer Autoren gegenüber, daß Link zu deren Seite so gestaltet werden, daß diese außerhalb des Framesets geöffnet werden.

      Bis danndann

      PAF (patrickausfrankfurt)

      1. Ihr habt mich falsch verstanden !!!!!!

        Die Situation:

        Eine bestimmte Seite meiner Site wird durch eine Suchmaschine so verlinkt das sie _top dargestellt wird, anstatt in dem Zielframe wo sie hingehört.
        Ansonsten schließe ich mich der Meinung von Kirsten an.

        Durch ein kleines Script verhindert man dieses Vortäuschen .....

        Bis denne

        1. Eine bestimmte Seite meiner Site wird durch eine Suchmaschine so verlinkt das sie _top dargestellt wird, anstatt in dem Zielframe wo sie hingehört.

          Reicht doch, wenn Du die Seite umbenennst und stattdessen ein Frameset mit dem Namen definierst. Dann laedt die Suchmaschine das Frameset und in ihm die gewuenschte Seite.
          Einer der entscheidenden Nachteile von Frames...

          Muetze

        2. Hallo Master!

          Eine bestimmte Seite meiner Site wird durch eine Suchmaschine so verlinkt das sie _top dargestellt wird, anstatt in dem Zielframe wo sie hingehört.

          Achso! ;-))

          Ansonsten schließe ich mich der Meinung von Kirsten an.

          Ich entschuldige mich hiermit für mein vorschnelles Posten!

          Viele Grüße,

          Kirsten

    2. Hallo Kirsten, hallo "Master Ace"

      Niemandes Seite "gehört" in irgendeinen frame...

      Doch, in den eigenen, und das ist, was "Master Ace" wohl meinte. Aber m.W. gibt es so direkt keine Möglichkeit, die Seite in dem dazugehörigen Frameset zu laden, denn in jedem Frameset sind die Startseiten "hardcoded". Evtl. könnte ich mir eine CGI-Lösung vorstellen, bei der ein Script z.B. den Namen der als Parameter übergebenen Seite in ein Frameset einsetzt und diese Frameset-Seite irgendwie zurückgibt etc. Schade, daß so eine Möglichkeit nicht von den Browsern direkt vorgesehen wird...

      Gruß,
      Stefan

  2. Hallo,

    Wie kann ich verhindern das fremde Links (z.b. von suchmaschine) eine Seite in meinen Web "_top" öffnen und nicht in dem frame in die es gehört.
    mit einen javascript (das wäre toll!!!!)

    Schau mal in die FAQ von de.comp.lang.javascript
    http://irb-www.informatik.uni-dortmund.de/~sm/aw/js/faq/
    Ich denke das, was Du suchst, ist dort dabei.

    Christine

  3. moinsen moinsen

    Wie kann ich verhindern das fremde Links (z.b. von suchmaschine) eine Seite in meinen Web "_top" öffnen und nicht in dem frame in die es gehört.
    mit einen javascript (das wäre toll!!!!)
    Mit meta robots content noindex... (das ist doch doof)

    Für die hilfe schon mal danke

    Hallo Master Ace,

    zunächst einmal läßt sich auf Deiner Seite, angenommen beispiel.html, feststellen, ob sie als _top oder in einen Frame geladen wurde:

    <header>
    <script language="JavaScript">
    if (!top.frames.length)
            top.location.href = "index.html";
    </script>
    </header>

    Dieses Script bewirkt, daß die Datei index.html wird geladen, wenn die betreffende Seite nicht in einen Frame eingebettet ist. Index.html könnte wie folgt aussehen:

    <html>
    <head>
    <title></title>
    <script language="JavaScript">
    var refURL = document.referrer;
    </script>
    </head>
    <frameset cols="150,*" border=0 frameborder=0 framespacing=0>
            <frame name="menue" src="menue.html">
            <frame name="main" src="home.html">
    </frameset>
    </html>

    Im Frame "main" soll später die Datei beispiel.html angezeigt werden. Mit der Variable refURL wird festgehalten, von welcher URL index.html aufgerufen wurde. refURL enthält den vollständigen Pfad einschließlich Dateiname. Zunächst wird standardmäßig die Datei home.html  in den Frame main geladen. Und jetzt wird's noch etwas trickreicher: Die Datei home.html muß nun prüfen, ob in der Variable refURL eine Adresse aus der eigenen Domain (bzw. der von index.html) enthalten ist. Ist dieses der Fall, wird die betreffende Seite in den Frame main geladen.

    <header>
    <script language="JavaScript">
    if (top.frames.length &&
      typeof(top.refURL) == 'string' &&
      top.refURL != "") {
        if (top.refURL != self.location &&
          !top.refURL.indexOf(pathname(top.location.href)) &&
          filename(top.refURL.toLowerCase()) != "index.html") {
            self.location = top.refURL;
        }
        top.refURL = "";
    }
    </script>
    </header>

    Zu beachten ist, daß obiges Script nicht lokal funktioniert, also wenn die Dateien direkt von einem Laufwerk, z.B. C:\irgendwo, in den Browser geladen werden.

    Zu bedenken bleibt noch, daß u.U. auch der Inhalt der übrigen Frames auf den Inhalt von "main" synchronisiert werden muß...

    Alles klar?
    Viel Erfolg
    Jörg