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? |
|
|
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ü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!
|
|
|
|
|
Karlarsch
Dabei seit: 05.02.2007
Ort: -
Alter: 58
Geschlecht:
|
Verfasst Do 07.02.2013 15:25
Titel
|
|
|
Erstmal vorweg
Code: | <a href="javascript:history.back()">zurü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
|
|
|
|
|
Anzeige
|
|
|
Morgo
Dabei seit: 10.08.2005
Ort: Von Kowelenz bis Kölle
Alter: 39
Geschlecht:
|
Verfasst Do 07.02.2013 17:21
Titel
|
|
|
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?
|
|
|
|
|
SheldonCooper
Threadersteller
Dabei seit: 06.02.2013
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Fr 08.02.2013 13:52
Titel
|
|
|
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 Was serverseitig läuft, weiß ich wirklich nicht, ist so eine Onlineditribution für Schulen, pffft, die bauen da irgendwie ihr eigenes Ding ...
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 werde jetzt meine Struktur komplett ändern und neu anlegen und dann brauche ich so etwas wie history(back) eh nicht mehr
Trotzdem nochmal danke an alle!!
|
|
|
|
|
|
|
|
Ä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
|
|