Lothar Nussmann: document.referrer und was daraus wird

Hi,

ich habe ein nerviges Problem mit folgendem Java-Script und Netscape:

<SCRIPT language="JavaScript">
<!--Skript verbergen

// Durch diese Funktion wird die entsprechende JavaSkriptFunktion im Frame "HistoryAnzeige" geladen
function Laden_Navigation()
{
   var vHome = 'www.rwth-aachen.de/Wi/';         //Vergleichskriterium
   var vCominURL = document.referrer;        //Hier her kommen wir
   var vFound = vCominURL.toUpperCase().indexOf (vHome.toUpperCase(),0); //Kommen wir von der RWTH...?
   if (vFound <= 0)                          // Wir kommen von einer fremden Seite
   {
      parent.location.href = '../frame/indexframe.html';
   }
   else
   {

var vFrameURL = location.href;
      
   };
}

// Script verbergen beenden-->
</SCRIPT>

Das Script lädt einen Navigationsbaum, egal welche von unseren Seiten man auch (direkt) anwählt. Klappt so weit auch so gut, nur ........
a) lokal funktioniert das Script nicht, da es in einer Endlosschleife endet
b) Links von unserer internen Suchmaschine werden auch in eine Endlosschleife geschossen.
Wie gesagt, nur bei Netscape.
Wo liegt das Problem?? Ist Netscape zu dumm, oder ich, oder gibt es ein besseres Script, das vergleicht, woher man kommt und was dann geladen werden soll?

Dank schon mal für Euer Feedback

  1. Hi,

    var vHome = 'www.rwth-aachen.de/Wi/';         //Vergleichskriterium

    Das Script lädt einen Navigationsbaum, egal welche von unseren Seiten man auch (direkt) anwählt. Klappt so weit auch so gut, nur ........
    a) lokal funktioniert das Script nicht, da es in einer Endlosschleife endet
    b) Links von unserer internen Suchmaschine werden auch in eine Endlosschleife geschossen.
    Wie gesagt, nur bei Netscape.
    Wo liegt das Problem?? Ist Netscape zu dumm, oder ich, oder gibt es ein besseres Script, das vergleicht, woher man kommt und was dann geladen werden soll?

    Netscape verhält sich hier völlig korrekt, denn:
    a) lokal wird ein Referrer der Art "file:///c|irgend/ein/pfad/zu/datei.html" zurückgegeben, und
    b) wird bei der Suchmaschine vermutlich ein Referrer der Art "http://www.rwth-aachen.de/cgi-bin/..." zurückgegeben.
    Beides entspricht nicht dem obigen Suchparameter. Wenn Du mehrere Referrer erlauben willst, mußt Du das auch entsprechend schreiben, z.B.:

    var vCominURL = document.referrer.toLowerCase();        //Hier her kommen wir
    if (vCominURL.indexOf('www.rwth-aachen.de/wi') < 0 && vCominURL.indexOf('file:') < 0 && vCominURL('www.rwth-aachen.de/cgi-bin') < 0) { parent.location.href = '../frame/indexframe.html'; }

    Beachte bitte, daß ich der Lesbarkeit halber toLowerCase() benutzt habe. Dementsprechend müssen alle zu prüfenden URLs auch in Kleinschrift sein, also "/wi" statt "/Wi".

    Cheatah