Ich verstehe nicht, warum in Firefox window.history.back()
auf einer Schaltfläche funktioniert:
Aber es funktioniert nicht für einen Link:
%Vor%Was ist der Unterschied?
Ein Beispiel, das dies veranschaulicht:
index.html
%Vor%second.html
%Vor%dritte.html
%Vor%Szenario:
Plunker-Beispiel (Hinweis: Führen Sie es unter Firefox aus)
Wenn Sie Zurück (Schaltfläche) verwenden, funktioniert es. Was ist der Unterschied in <a onclick
und <button onclick
in diesem Fall?
Sie stehen vor diesem Problem ( zitiert von vikku.info ):
Aber was passierte, als ich nach der Navigation auf die Zurück-Taste drücke verschiedene Seiten wurde ich zwischen den letzten zwei navigierten Seiten gesperrt.
Jemand in den Kommentaren hat den Nagel in dieser Frage getroffen.
onclick
erstellen, fügen Sie einen zusätzlichen Ereignishandler zum Klicken auf einen Link hinzu. Der Browser wird jedoch immer noch mit einer nativen Logik umgehen, sodass die aktuelle Seite immer noch zum Verlauf hinzugefügt wird. href
übergeben, überschreiben Sie tatsächlich die native Logik des Browsers, sodass die aktuelle Seite nicht zum Verlauf hinzugefügt wird. EINFACHE, SCHMUTZIGE LÖSUNG
HTML:
%Vor%VERBESSERTE LÖSUNG
Ich habe auch ein Beispiel erstellt ( Plunker-Beispiel ), das die native preventDefault
-Funktionalität nutzt ( MDN bei preventDefault ). In diesem Fall ist es nicht erforderlich, JavaScript im Attribut href
zu schreiben. Jetzt können Sie Benutzer unterstützen, die kein JavaScript verwenden, indem Sie beispielsweise auf die Startseite verlinken. Vermeiden Sie besser auch Inline-Event-Handler.
HTML:
%Vor%Javascript:
%Vor% Ich denke, es hängt möglicherweise mit dem Attribut href
des Tags a
zusammen, das als nächster Schritt in der Navigation interpretiert wird (selbst wenn Sie in die Historie zurückkehren).
Entfernen Sie das href
-Attribut aus a
.
Wie Sie sehen, funktioniert es so:
Sie müssen nur CSS für die a
now
Versuchen Sie es mit
%Vor%Sehen Sie sich den Link an mehr Details.
Tags und Links javascript html