mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 25.04.2024 18:43 Benutzername: Passwort: Auto-Login

Thema: Alternative zu history(back) falls JS deaktiviert ist? vom 07.02.2013


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Alternative zu history(back) falls JS deaktiviert ist?
Autor Nachricht
SheldonCooper
Threadersteller

Dabei seit: 06.02.2013
Ort: -
Alter: -
Geschlecht: -
Verfasst Do 07.02.2013 14:42
Titel

Alternative zu history(back) falls JS deaktiviert ist?

Antworten mit Zitat Zum Seitenanfang

Ich habe in einem Projekt einige HTML-Seiten, die von zwei verschiedenen, übergeordneten HTML-Seiten (Menüs) aus angesteuert werden können (aufgrund unterschiedlicher Zugriffsrechte gibt es diese zwei). Jetzt soll ich bei den diversen Seiten auch einen Link zurück zum jeweiligen Menü setzen. Normalerweise würde sich das ja ganz einfach mit <a href="javascript:history.back()">zur&uuml;ck</a> lösen lassen. Was aber, wenn der User Javascript deaktiviert hat? Da es sich um Schul-Server/Rechner handelt, kann das sehr oft der Fall sein! Gibt es eine andere Lösung ohne JS?

Danke!
  View user's profile Private Nachricht senden
Karlarsch

Dabei seit: 05.02.2007
Ort: -
Alter: 58
Geschlecht: Männlich
Verfasst Do 07.02.2013 15:25
Titel

Antworten mit Zitat Zum Seitenanfang

Erstmal vorweg
Code:
<a href="javascript:history.back()">zur&uuml;ck</a>

ist sehr unschön, etwas eleganter wäre
Code:
<a href="#" onclick="history.back(); return false">zurück</a>

Denn für genau sowas sind Event-Handler da.
Außerdem ist es unsinnig Sonderzeichen durch Entitäten zu ersetzen. Nutze UTF-8.

Die Alternative oder eigentlich sogar der bessere Weg, wäre den Referer mittels z.B. PHP ($_SERVER['HTTP_REFERER']) auszulesen und damit das href-Attribut zu füllen. Auf die Javascript-"Lösung" sollte dann nur zurückgegriffen werden, wenn kein Referer gesendet wurde.

Mit jQuery könnte das z.B. so aussehen
Code:
$("a[href='']").show().click(function() {
history.back();
return false;
})


Sind weder Javascript noch Referer vorhanden sollte der Link ausgeblendet werden. bzw. er wird er initial ausgeblendet wenn das href-attribut leer ist. Mittels Javascript wird er dann wieder angezeigt (s.o.)

Code:
a[href=''] {display: none;}


Gruß
Karl
  View user's profile Private Nachricht senden
Anzeige
Anzeige
Morgo

Dabei seit: 10.08.2005
Ort: Von Kowelenz bis Kölle
Alter: 39
Geschlecht: Männlich
Verfasst Do 07.02.2013 17:21
Titel

Antworten mit Zitat Zum Seitenanfang

Oder so:
Ganz auf Javascript verzichten und ein Dokument verlinken, auf dem dann je nach Zugriffsrechten wieder auf die richtige Seite weitergeleitet wird. Oder über einen Parameter die übergeordnete Seite identifizieren.

Alles andere ist anfällig für ungewolltes Verhalten: Du kannst dich weder auf den Referer, noch auf die Browser-Historie verlassen. Was läuft denn da serverseitig überhaupt? PHP?
  View user's profile Private Nachricht senden
SheldonCooper
Threadersteller

Dabei seit: 06.02.2013
Ort: -
Alter: -
Geschlecht: -
Verfasst Fr 08.02.2013 13:52
Titel

Antworten mit Zitat Zum Seitenanfang

Die Lage hat sich inzwischen doch wieder anders dargestellt, aber trotzdem noch ein paar Anmerkungen zu Euren Vorschlägen:

@Karlarsch:
Karlarsch hat geschrieben:
... etwas eleganter wäre
Code:
<a href="#" onclick="history.back(); return false">zurück</a>

Super Lösung, hast vollkommen recht, sehr viel eleganter! Das werde ich mir für spätere Projekte merken!

Karlarsch hat geschrieben:
Die Alternative oder eigentlich sogar der bessere Weg, wäre den Referer mittels z.B. PHP ($_SERVER['HTTP_REFERER']) auszulesen und damit das href-Attribut zu füllen. ...
Sind weder Javascript noch Referer vorhanden sollte der Link ausgeblendet werden

Referer? Keine Ahnung ... Ausblenden? Geht gar nicht, denn der Link sollte ja auf jeden Fall anklickbar sein, man muss ja irgendwie wieder zurück kommen (DAU)

@Morgo:
Morgo hat geschrieben:
Oder so:
Ganz auf Javascript verzichten und ein Dokument verlinken, auf dem dann je nach Zugriffsrechten wieder auf die richtige Seite weitergeleitet wird.

Ich befürchte das geht nicht, individuelle Zugriffsrechte direkt mit bestimmten Dokumenten verbinden ... soweit ich weiß wird nur nach Stichwort "lehrer" bei einem eingeloggten Schüler das eine oder andere gesperrt.

Morgo hat geschrieben:
Alles andere ist anfällig für ungewolltes Verhalten: Du kannst dich weder auf den Referer, noch auf die Browser-Historie verlassen. Was läuft denn da serverseitig überhaupt? PHP?


Ungewolltes Verhalten - sehr gut! Passt zum DAU *ha ha* Was serverseitig läuft, weiß ich wirklich nicht, ist so eine Onlineditribution für Schulen, pffft, die bauen da irgendwie ihr eigenes Ding ... Glaskugel

Aber - wie schon eingangs gesagt - ist jetzt eh alles anders, nachdem es nämlich diverse Onlinedistributionen in den diversen Bundesländern und in Österreich gibt, bei denen jeder irgendwie andere Vorraussetzungen erfüllt haben will, die sich z. T. auch widersprechen. So bleibt uns nun nichts anderes übrig, als Fehlermeldungen wie "Sie haben leider keine Zugriffsrechte" hinzunehmen. * Ich geb auf... *

Ich werde jetzt meine Struktur komplett ändern und neu anlegen und dann brauche ich so etwas wie history(back) eh nicht mehr *zwinker* * huduwudu! *

Trotzdem nochmal danke an alle!!
  View user's profile Private Nachricht senden
 
Ähnliche Themen history back in php in echo
Safari und javascript="history.back()"
JavaScript Fenster, falls Internet Explorer 6
RIGHT JOIN falls keine übereinstimmung andere Tabelle [SQL]
Eigene User-History erstellen
[SUCHE] Software für Version-History
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.