Wie Sie verhindern, dass ein browser zurück/vorwärts in der Geschichte, wenn horizontales scrollen?
Wie kann man das deaktivieren eines modernen Browsern Standard-Funktionalität mit Hilfe von JQuery oder Native JS für rückwärts oder vorwärts bei horizontalem scrollen?
Dies geschieht in der Regel, wenn Sie mit einem trackpad, und wenn gescrollt werden, um das Ende oder den Anfang eines scrollbaren div.
Der Fahrer und die trackpad-software ist Ihr overlord. Finden Sie diese Frage beantwortet.
InformationsquelleAutor Steve Chan | 2013-04-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Demo: http://jsfiddle.net/DerekL/RgDBQ/show/
Werden Sie nicht in der Lage, gehen Sie zurück zu der vorherigen Webseite, es sei denn, spam-E-Mails die zurück-Taste oder halten Sie die zurück-Taste und wählen Sie den vorherigen Eintrag.
Hinweis:
onpopstate
(oder eventonbeforeunload
) scheint nicht zu funktionieren auf iOS.Sie kann immer noch wieder gehen, wenn Sie halten Sie die Zurück-Taste.
Es ist fies wenn man es für keinen Grund, in der Tat. Aber es gibt echt Fälle, für die es so, zumindest vorübergehend... Einem Fall, den ich anwenden möchten, dies ist für überspringen Sie unerwünschte Geschichte Weg von der Nutzung der css :target pseudo-Klasse. Oder vielleicht, deaktivieren Sie die Geschichte, und geben Sie einen benutzerdefinierten
back button
statt.Oder, wenn jemand ist in einer Zahlung zu verarbeiten, und erlischt Ihre gesamte Zahlung über die zurück-Taste, in der Erwägung, dass mit dem in-Seite zurück-Taste funktioniert einwandfrei. Ich kann nicht ändern, den Prozess, es ist gelungen durch den payment-Anbieter, aber ich kann versuchen zu helfen, verhindern, dass Benutzer unwissentlich Fehler!
Fantastisch! Dank
InformationsquelleAutor Derek 朕會功夫
So, ich dachte mir, da habe ich eine web-app, warum nicht den Benutzer auffordern, alle nicht gespeicherten änderungen, die Abwendung der user von verlieren alle nicht gespeicherten änderungen oder landen auf den vorherigen oder nächsten Seite in der browser-history.
Hier ist die Lösung, wenn eine andere kommt über dieses problem, wie ich:
Kann auch
e.preventDefault(); return false;
InformationsquelleAutor Steve Chan
Wenn Sie auf einem mac dies wird verursacht durch das Track-Pad-Gesten.
Nicht die JS-Lösung, die Sie suchen, aber wenn Sie nur wollen, um zu verhindern, dass es für sich selbst können Sie dieses feature deaktivieren.
InformationsquelleAutor AndrewHipp
Funktioniert in Chrome und Safari (ich.e getestet mit Chrome und Safari):
Es funktioniert, aber da Chrom 51 sehen Sie '[Verletzung] Added non-passive Ereignis-listener, um eine scroll-blockierende " Rad "Ereignis" Meldung in der Konsole. Aber wir müssen nonpassive Ereignis, weil wir als "preventDefault', und es ist unklar, wie zu unterdrücken, die Nachricht
InformationsquelleAutor avetisk