Zur Navigation

JavaScript Herkunftsseite feststellen und beim Verlassen wieder zurück leiten

1 krieger98

Ich benötige ein JavaScript das folgende Funktionen erfüllt: Bei Besuch einer Webseite sollte festgestellt werden von welcher Seite der Besucher kommt: a) montainbike-workshop.htm b) trekkingrad-workshop.htm c) Rennrad_Workshop.htm d) Elektrobike_Workshop.htm
Beim Verlassen der Seite sollte über die Navigation "Home" wieder entsprechend zurück geleitet werden.

26.01.2016 12:14

2 Jörg

Vorausgesetzt die Seiten befinden sich alle im DocumentRoot (andernfalls müssen die Pfade angepasst werden), sollte dies in etwa so gehen:

<script>
function goHome()
{
    var a = document.createElement('a');
    a.href = document.referrer;
    switch(a.pathname) {
        case '/montainbike-workshop.htm':
        case '/trekkingrad-workshop.htm':
        case '/Rennrad_Workshop.htm':
        case '/Elektrobike_Workshop.htm':
            window.location.href = document.referrer;
            break;
        default:
            window.location.href = 'home.html';
    }
    a = '';
}
</script>

<a href="home.html" onclick="goHome(); return false">Home</a>

Funktioniert natürlich nicht, wenn der Besucher zwischenzeitlich auf anderen Seiten war - dann muss der Referrer in einem Cookie zwischengespeichert und von dort wieder ausgelesen werden

26.01.2016 15:36 | geändert: 26.01.2016 15:37

3 krieger98

Vielen Dank erstmal aber das klappt so nicht. Vielleicht habe ich das Problem nicht richtig dargestellt. Beispiel: Ich kann zum Beispiel die Seite Schaltungs-Workshop:http://www.fahrrad-workshop-sprockhoevel.de/Schaltung-Umwerfer-Workshop.htm vom Montainbike-Workshop errreichen:
http://www.fahrrad-workshop-sprockhoevel.de/mountainbike-workshop.htm oder auch vom Rennrad-Workshop oderTrekkingrad-Workshop. In der die obige Navigation "Home" müsste sich dann entsprechend je nach Herkunft der Datei-Name ändern (Ausgangsseite).

26.01.2016 19:53

4 Jörg

Vielen Dank erstmal aber das klappt so nicht.

Der Code an sich funktioniert, das habe ich anhand einer kleinen Testseite probiert. Wenn das bei dir nicht der Fall ist, kann das eine Menge Ursachen haben: dass du den Code falsch eingebaut hast, oder ein anderes JavaScript dazwischenfunkt oder ... Wenn du eine Seite verlinkst, auf der du den Code eingebaut hast, oder alternativ den vollständigen Code der Seite hier postest, kann man schauen, warum dieser bei dir nicht funktioniert.

In der die obige Navigation "Home" müsste sich dann entsprechend je nach Herkunft der Datei-Name ändern (Ausgangsseite).

Ich sehe da keinen Navigationspunkt "Home"?

Was genau meinst du mit Dateiname - das was im href Attribut steht? das ändert das Script nicht, es leitet bei einem Klick stattdessen auf die Seite, wo der Besucher her kam. Für den Besucher kommt das auf das gleiche hinaus. Oder willst du auch den Linktext ändern? da könnte man das Script entsprechend erweitern. Aber erstmal sollte es grundsätzlich funktionieren (s.o.)

27.01.2016 10:37

5 krieger98

Ich habe mal eine Testseite erstellt. Auf der Seite http://s201291267.online.de/Fahrrad-Putzen-Pflegen-Workshop.htm
habe ich mal den Code eingefügt.
Ich komme jetzt von der Seite http://s201291267.online.de/mountainbike-workshop.htm zu der obigen Seite "Fahrrad-Putzen-Pflegen". Nach dem Besuch dieser Seite sollte über die Navigation "Home" auf die Seite "MTB-Workshop" zurück geleitet werden. Falls vom "Rennrad-Workshop" auf die Seite "Putzen-Pflegen" zu gegriffen wird dann über "Home" auf den Rennrad-Workshop zurück geleitet werden. Ich verstehe das Ganze nicht. Welche Aufgabe hat die Datei "home.html" in dem Beispiel?
Der Navigation "Home" steht jetzt ein Link zu der Seite "Tipps.htm". Hier sollte aber dann auf die entsprechende Seite zurück geleitet werden je nach Herkunft.

27.01.2016 19:38

6 Jörg

Da fehlt noch das onlick Attribut, in welchem die Funktion goHome() aufgerufen wird:

<a href="Tipps.htm" target="_blank" onclick="goHome(); return false">&raquo;Home</a>

Welche Aufgabe hat die Datei "home.html" in dem Beispiel?

Das Ziel des Home-Links, wenn der Besucher von keine der genannten Seiten kommt - in deinem Fall die Tipps.htm

27.01.2016 20:40

7 krieger98

Zitat von Jörg
Da fehlt noch das onlick Attribut, in welchem die Funktion goHome() aufgerufen wird:

<a href="Tipps.htm" target="_blank" onclick="goHome(); return false">&raquo;Home</a>

Welche Aufgabe hat die Datei "home.html" in dem Beispiel?

Das Ziel des Home-Links, wenn der Besucher von keine der genannten Seiten kommt - in deinem Fall die Tipps.htm
Danke!!
Wird das "onlick Attribut" direkt unter dem Java-Code eingefügt?
<script>
function goHome()
{
var a = document.createElement('a');
a.href = document.referrer;
switch(a.pathname) {
case '/montainbike-workshop.htm':
case '/trekkingrad-workshop.htm':
case '/Rennrad_workshop.htm':
case '/Elektrobike_workshop.htm':
window.location.href = document.referrer;
break;
default:
window.location.href = 'Tipps.htm';
}
a = '';
}
</script>
<a href="Tipps.htm" target="_blank" onclick="goHome(); return false">&raquo;Home</a>

28.01.2016 12:44

8 Jörg

Das onclick Attribut ist nicht der komplette Link, sondern nur das, was ich in dem Codabschnitt fett markiert habe:

onclick="goHome(); return false"

Attribute haben die Form abc="xyz" und stehen innerhalb eines öffnenden HTML-Tags, wie z.B. <a>. So sind z.B. auch href="Tipps.html" oder target="_blank" Attribute innerhalb von <a>

Das onclick Attribut baust du in den bereits vorhandenen Tipps-Link deiner Navigation ein, so wie ich das oben angegeben habe. Wenn ein Besucher dann auf diesen Link klickt, wird die Javascript-Funktion goHome() aufgerufen, die überprüft, woher der Besucher kommt, und diesen ggf. zu der Seite wieder zurückschickt.

Den Link musst du auch nicht nach oben unterhalb des Scripts verschieben, der darf an Ort und Stelle bleiben. Sonst würde er sich ja nicht mehr in der Navigation befinden :)

28.01.2016 14:26 | geändert: 28.01.2016 14:31

9 krieger98

Zitat von Jörg
Das onclick Attribut ist das, was ich in dem Codabschnitt fett markiert habe:

onclick="goHome(); return false"

Attribute haben die Form abc="xyz" und stehen innerhalb eines öffnenden HTML-Tags, wie z.B. <a>. So sind z.B. auch href="Tipps.html" oder target="_blank" Attribute innerhalb von <a>

Das onclick Attribut baust du in deinen bereits vorhandenen Tipps-Link ein, so wie ich das oben angegeben habe! wenn man dann auf diesen Link klickt, wird die Javascript-Funktion goHome() aufgerufen, die überprüft, woher der Besucher kommt, und diesen ggf. zu der Seite wieder zurückschickt.

Den Link musst du auch nicht nach oben unterhalb des Scripts verschieben, der darf an Ort und Stelle bleiben. Sonst würde er sich ja nicht mehr in der Navigation befinden.
Ich habe die Funktion jetzt so eingefügt. Wenn ich vom MTB-Workshop auf die Seite "Fahrrrad-Putzen-Workshop" komme werde ich immer noch zu "Tipps.htm" zurück geleitet.

28.01.2016 15:23 | geändert: 28.01.2016 15:25

10 Jörg

In dem Script ist noch ein Schreibfehler, da fehlt ein u im Dateinamen:

        case '/mountainbike-workshop.htm':

(hatte ich per Copy & Paste falsch übernommen)

28.01.2016 15:32 | geändert: 28.01.2016 15:37