2016-03-11 8 views
6

Ich benutze id auf jeder Seite, um die Seite zu einem festen Zinssatz zu blättern, wenn der Benutzer auf eine andere Seite auf meiner Website umleitet. Mein Problem ist, Benutzer muss doppelt auf den Browser-Taste zurück, um die Seite auf die vorherige Seite umleiten, So muss ich Doppelklick auf die Zurück-Taste eines Browsers, wenn der Benutzer einen einzigen Klick auf den Browser zurück-Taste ..
Dankebrowser zurück button single click in doppelklick mit javascript

Antwort

0

Kurze Antwort:

document.onmouseover = function() { 
 
    //User's mouse is inside the page. 
 
    window.innerDocClick = true; 
 
} 
 

 
document.onmouseleave = function() { 
 
    //User's mouse has left the page. 
 
    window.innerDocClick = false; 
 
} 
 

 
window.onhashchange = function() { 
 
    if (!window.innerDocClick) { 
 
    //Browser back button was clicked 
 
    window.history.go(-2); 
 
    } 
 
}

Erläuterung:

Das Objekt window.history enthält die URLs, die der Benutzer im Browser besucht hat. Die window.history.go(x) Funktion wird verwendet, um den Browser auf die relative Seite im Verlauf zu gehen (in diesem Fall -2, um 2 Seiten zurückzugehen).

Um zu erkennen, wenn die Zurück-Taste im Browser gedrückt wurde, habe ich eine schnelle Suche durchgeführt und die Lösung zu this question here über "Wie Browser Back Button Ereignis erkennen - Cross Browser" gefunden. Die akzeptierte Antwort hat einen sehr vollständigen und detaillierten Ansatz, den ich verwendet habe, um das obige Snippet zu bekommen, das Sie auf jeden Fall lesen sollten.

Ein schneller Überblick über das obige Snippet besteht darin, dass es 2 Ereignisse verwendet, um zu erkennen, ob sich die Maus des Benutzers innerhalb des Seitendokuments befindet oder nicht. Wenn es nicht im Seitendokument vorhanden ist, bedeutet dies, dass der Benutzer nicht auf In-Page-Elemente wie Hyperlinks usw. klickt, die auch die URL ändern könnten. Das "onhashchange" -Ereignis erkennt, wenn sich der Standort-Hash ändert, und überprüft dann, ob sich die Maus des Benutzers innerhalb des Dokuments befindet, und führt andernfalls die doppelte Zurück-Schaltfläche aus.

Bitte beachten Sie: Diese Methode gilt nicht, wenn der Benutzer die Rücktaste drückt. Die akzeptierte Antwort deckt eine Methode ab, die dies unter Verwendung von jQuery ermöglicht, die so aussieht, als ob sie geändert werden könnte, um in JavaScript von JavaScript zu funktionieren, wenn jQuery nicht erwünscht ist. Diese Methode deckt wahrscheinlich auch Geräte wie iPads oder andere Tablets und mobile Geräte nicht ab, da sie keine Mausereignisse haben. Darüber hinaus werden Swipe-Ereignisse auf dem Trackpad eines Mac höchstwahrscheinlich nicht abgedeckt. Wenn ich diese Geräte nicht habe, kann ich sie nicht testen.

Verwandte Themen