Stephan Kockmann: Referrer ermitteln bei Aufruf in fremdem Frame?

Hallo Javascript-Experten,

auf meiner Website habe ich den Counter-Dienst von www.freelogger.com eingebunden. Allerdings lassen sich aufgrund der von mir verwendeten Weiterleitung über den Anbieter "www.nic.de.vu" keine Referrer protokollieren. Ich suche nun nach einer Möglichkeit, dies trotzdem zu ermöglichen.

Der Aufruf meiner Seite über http://web-leuchtturm.de.vu/ führt dazu, dass um die eigentliche Website (http://homepages.compuserve.de/skockmann/) ein nicht sichtbarer Frame gelegt wird, in dem dann meine Seite dargestellt wird. Hierauf habe ich leider keinen Einfluss. Der vom Freelogger-Zähler verwendete JavaScript-Code ermittelt den Referrer folgendermaßen:

// for frames use 'top.document.referrer'  
f=""+escape(document.referrer)  

Mit "document.referrer" bekomme ich nun immer nur die Adresse "web-leuchtturm.de.vu" als Referrer, mit "top.document.referrer" meldet mir der IE6 unter Windows Me einen Fehler in einer völlig anderen Zeile, die "sw=screen.width;sh=screen.height;s=sw+"x"+sh" lautet. Diese Fehlermeldung tritt mit "document.referrer" (ohne "top.") nicht auf.

Der Ersteller des Freelogger-Counters meinte auf Nachfrage, dass es nicht möglich sei, den Referrer in meinem Fall zu ermitteln, da das Framset nicht auf meiner Domain liege. Der Anbieter de.vu kündigt zwar seit langem Statistiken an, reagiert aber leider überhaupt nicht auf Anfragen. :( Darum suche ich jetzt nach einer eigenen Lösung. CGI u. ä. stehen mir bei Compuserve leider nicht zur Verfügung, daher sollte die Lösung möglichst durch Anpassung des erwähnten Javascript-Codes erfolgen.

Meine Experimente und die Suche im Web waren bisher erfolglos. Aber vielleicht weiß einer von euch Rat oder hat eine zündende Idee?

Für alle Antworten danke ich euch schon jetzt!

Viele Grüße aus Münster
Stephan Kockmann

  1. Du scheiterst an verschiedenen Dingen, die die Sache letzendlich unmöglich machen.

    Durch die Umleitung von .de.vu geht der originale Referer verloren. Du müßtest ihn im Umleitungsframeset (auf das du vermutlich keinerlei Einfluß hast) abfragen und als URL-Parameter an deine Seiten bei Compuserve weiterleiten.

    Dort hast du aber das Problem, daß der Counter sich seinerseits auf den Referer bezieht, d.h. der Referer dort ist das Umleitungsframeset. Du müßtest irgendwie (was vermutlich garnicht geht) dem Counter begreiflich machen, daß er nicht den Referer nehmen soll, sondern den URL-Parameter, den du einfach weiterreichst.

    Javascript auf der Compuserve-Seite kann den Referer des Umleitungs-Framesets nicht abfragen, weil es von einer anderen Domain kommt - Sicherheitsvorschriften, die nicht umgangen werden können, verbieten jeglichen Zugriff.

    Du könntest lediglich den Counter im .de.vu-Frameset mit einbauen - hm, geht aber garnicht, weil Framesets ja nur das Browserfenster aufteilen, aber keine eigene HTML-Seite sind. Der originale Referer läßt sich aber nur an dieser Stelle abfragen.

    Mit anderen Worten: Es geht nicht, jedenfalls nicht mit den beschränket Möglichkeiten deines Webspaces.

    - Sven Rautenberg

    1. Hallo Sven, Stephan

      Du könntest lediglich den Counter im .de.vu-Frameset mit einbauen - hm, geht aber garnicht, weil Framesets ja nur das Browserfenster aufteilen, aber keine eigene HTML-Seite sind. Der originale Referer läßt sich aber nur an dieser Stelle abfragen.

      solange es sich um einen unsichtbaren Counter handelt und dieser auf Image-basis arbeitet, könnte es eine Möglichkeit geben.

      Einfach im Head der Framedatei einen JS-Teil einbauen und ein neues Imageobjekt anlegen und die Parameter übergeben:

      counter=new Image();
      counter.src="derSource"

      Viele Grüße

      Antje