Ist es möglich, e.preventDefault im Fenster.onPopState?
Ich versuche zu unterbinden, dass der Benutzer geht zurück in meine web-app. Für diese habe ich versucht, fangen die Fenster.onpopstate und e Hinzugefügt.preventDefault zum Abbrechen die Taste zurück Wirkung.
Aber es nicht scheint zu passieren.
window.addEventListener('popstate',function(e){
console.log(e); e.preventDefault();
});
Ist es nicht möglich zu verhindern, dass das popstate-event des Browsers? Oder mache ich etwas falsch?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gemäß dieser Dokumentation, wird das popstate-event ist nicht kündbar:
Erste off "nicht möglich" ist nie eine akzeptable Antwort.
Zweitens Sie kann kompensieren popstate bugs. In meine rich-editor hat, um ständig einen Ausgleich für die lazy bastard-Taste: Backspace-Taste. Es ist nicht ein Gültiger Schlüssel für eine zurück-Schaltfläche (genau wie die Leertaste für "Seite downing"), aber die Leute verhängen, die Ihren persönlichen Vorlieben auf die Welt, anstatt das hinzufügen einer browser-Erweiterung so, wenn die Menschen drücken es manchmal das popstate ausgelöst wird, anstatt den editor zu entfernen, was Charakter ist auf der linken Seite der Tastatur die Einfügemarke.
Den folgenden code (das posting Abhängigkeiten hier) erkennt, wenn die popstate bug ausgelöst wird, schlägt es in das Gesicht mit einem
e.preventDefault();
und dann behebt der Adressleiste die Adresse mithistory.go(1);
. Die person, die mit dem editor nicht merken, dass etwas passiert ist, wie der browser war nicht erlaubt, das DOM zu verändern. Dieser code ist minimal (andere Leute können, die Kompensation für diesen Fehler in verschiedenen Kontexten) und ich habe nur getestet, in Gecko/Firefox derzeit so sicher sein, zu testen, Blink, Presto, Trident und WebKit-basierten Browsern auch.