Ich möchte zurück Schaltfläche für meine Anwendung deaktivieren (Ich weiß, das ist dumm, schlechte Benutzererfahrung, gegen die Welt, auch ein Verbrechen!), Aber mein Client möchte seine Zurück-Schaltfläche deaktiviert:). Wie auch immer, ich habe folgendes getan, um die Zurück-Taste zu deaktivieren.Deaktivierung Zurück-Taste in AngularJS mit UI-Router
stelle ich eine Flagge in window.onpopstate
Event-Handler wie folgt aus:
window.onpopstate = function() { window.backClicked = true; }
und in meinem Haupt-Controller gesetzt ist folgendes: wollte
$rootScope.$on('$locationChangeStart', function (event, next, current) {
if (window.backButton) {
event.preventDefault();
window.backButton = false;
}
});
ich mein Ansatz schlecht, dass wissen?
ich verwendet, um andere beliebte Lösung wie folgt aus:
window.onpopstate = function(event) {
history.go(1); // or window.forward()
};
aber in Chrom hat nicht funktioniert, es nicht zum ersten Mal nicht funktioniert und zwischen den Staaten zirkulieren, und window.forward()
nachladen nicht die genauer gesagt: Wenn ich drei Zustände habe, A, B, C mit den entsprechenden URLs /stateA
, /stateB
und /stateC
und der Benutzer im Zustand B ist, drückt er die Zurück-Taste url ändert sich zu /stateA
und Status A wird geladen und URL wird geändert zu /stateB
aber Zustand B ist nicht geladen und URL ist /stateB
aber der geladene Zustand ist A.
Irgendwelche Korrekturen oder Ideen zum letztgenannten Ansatz?
Nur eine Randnotiz, dass ich mit diesem Problem mehr als drei Tage zu kämpfen habe.
das Problem ist, dass es einige ähnliche Anwendungen auf dem Markt gibt, die Schaltfläche deaktiviert deaktiviert haben. Sie sind meist in asp.net Webformularen geschrieben, die etwas einfacher ist, die Zurück-Schaltfläche zu deaktivieren, und das größere Problem ist, dass in einem großen Unternehmen ein einzelner Entwickler nicht so viel Macht hat. – Rachmaninoff