Stefan Kremer: document.referrer und iframe?

Ein komplizierter Fall:

Ich habe in meinem Webprojekt A eine Seite Text.htm, die mittels iframe ein Menü einbettet. Ein zweites Webprojekt B lädt genau die gleiche Seite Text.htm, soll aber ein anderes Menü darstellen.

Nun möchte ich im Text.htm abfragen, von welchem Menü sie aufgerufen wurde um zwischen den beiden Webprojekten unterscheiden zu können und das entsprechend passende Menü im iframe zu laden.

Mein Ansatz ist folgendes auf der Webseite:

<script type="text/javascript">
  if (document.referrer == "menue1.htm") {
    document.write('<iframe src="menue1.htm" width="140" height="100%" name="Inhalt" border="0" frameborder="0"></iframe></div></div>');
  } else {
    document.write('<iframe src="menue2.htm" width="140" height="100%" name="Inhalt" border="0" frameborder="0"></iframe></div></div>');
  }
</script>

Das klappt aber nicht, es wird immer der else-Fall ausgelöst. Kann das daran liegen, dass document.referrer bei iframe nicht funktioniert, oder dass als Wert immer eine komplette http-Adresse benötigt wird? Ich teste das bisher nur lokal...

  1. hi,

    Das klappt aber nicht, es wird immer der else-Fall ausgelöst. Kann das daran liegen, dass document.referrer bei iframe nicht funktioniert, oder dass als Wert immer eine komplette http-Adresse benötigt wird?

    Letzteres hättest du durch eine Kontrollausgabe schneller in Erfahrung bringen können, als durch das Stellen der Frage im Forum.

    Dass du sie hier gestellt hast, ist aber trotzdem gut - weil man dich so darauf hinweisen kann, dass das Vorhaben unsinnig ist, weil der Referrer in keinster Weise eine verlässliche Größe darstellt.

    Nun möchte ich im Text.htm abfragen, von welchem Menü sie aufgerufen wurde um zwischen den beiden Webprojekten unterscheiden zu können und das entsprechend passende Menü im iframe zu laden.

    Dann übergebe bei der Einbindung einen Parameter im Query-String, und frage auf diesen ab (location.search).

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Dass du sie hier gestellt hast, ist aber trotzdem gut - weil man dich so darauf hinweisen kann, dass das Vorhaben unsinnig ist, weil der Referrer in keinster Weise eine verlässliche Größe darstellt.

      Das war mir klar, aber ich hatte bisher keine bessere Lösung gefunden!  Aber wozu gibt es dieses Forum; manchmal sieht man den Wald vor lauter Bäumen nicht.

      Nun möchte ich im Text.htm abfragen, von welchem Menü sie aufgerufen wurde um zwischen den beiden Webprojekten unterscheiden zu können und das entsprechend passende Menü im iframe zu laden.

      Dann übergebe bei der Einbindung einen Parameter im Query-String, und frage auf diesen ab (location.search).

      Perfekt!!! Das ist genau das, wonach ich gesucht habe! Jetzt nur noch flott 300 Seiten umschreiben und schon ist alles in Butter haha. Danke nochmals!

      1. Hi,

        Das war mir klar, aber ich hatte bisher keine bessere Lösung gefunden!

        Es ist auch so, daß man mit JS erkennen kann, ob der Referrer gefaket/unterdrückt wird oder nicht. Denn wenn man eine Resource in einem (I)Frame anfordert, können sich beide Dokumente ja "unterhalten". Und wenn der Referrer wider Erwarten nicht stimmt, dann wird er halt vom Client manipuliert. 8->

        Gruß, Cybaer

        --
        Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
      2. Hi,

        Jetzt nur noch flott 300 Seiten umschreiben und schon ist alles in Butter haha.

        versuche sie so umzuschreiben, dass bei der nächsten Code-Änderung möglichst nur noch eine Stelle anzufassen ist, also z.B. wenn Du statt JavaScript eine sehr viel verlässlichere serverseitige Technik einsetzt, oder wenn Du Dich von Frames freimachst.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes