2014-09-12 76 views
5

Chcę wykryć przycisk wstecz przeglądarki w java-script/jquery bez używania zewnętrznych wtyczek.wykrywanie przycisku wstecz przeglądarki w javascript/jquery bez użycia zewnętrznych wtyczek

zamierzam wspierać następujące przeglądarki

IE8, IE9, Firefox, Chrome

google tak wiele łączy i znaleźć poniżej części kodu z projektu kodu

<body onbeforeunload=”HandleBackFunctionality()”> 

function HandleBackFunctionality() 
{ 
    if(window.event) 
    { 
     if(window.event.clientX < 40 && window.event.clientY < 0) 
     { 
      alert("Browser back button is clicked..."); 
     } 
     else 
     { 
      alert("Browser refresh button is clicked..."); 
     } 
    } 
    else 
    { 
     if(event.currentTarget.performance.navigation.type == 1) 
     { 
      alert("Browser refresh button is clicked..."); 
     } 
     if(event.currentTarget.performance.navigation.type == 2) 
     { 
      alert("Browser back button is clicked..."); 
     } 
    } 
} 

powyższy kod działa dobrze przeglądarka IE. oznacza to, że mogę uzyskać wartości window.event.clientX i clientY w przeglądarce IE. ale w chrome/firefox nie działa.

Po kliknięciu przycisku wstecz przeglądarki należy odświeżyć stronę.

jaki sposób można wykryć przeglądarkę Wstecz zdarzenie click we wszystkich przeglądarkach (IE, Firefox, Chrome)

Każda pomoc będzie mile widziane.

+0

Szukasz 'funkcji window.onpopstate'. [Dokumentacja API Mozilli] (https://developer.mozilla.org/en-US/docs/WindowEventHandlers.onpopstate) [Caniuse.Popstate] (http://caniuse.com/#feat=history) – Mysteryos

+1

@Mystreyos ale popstate wydarzenie jest jak wydarzenie HTML5 prawda? ale chcę też wspierać IE8. Czy mógłbyś zaktualizować więcej szczegółów na ten temat. Dzięki – SivaRajini

+0

Poszukuje ** dokładnie ** to samo, jak wykryć kliknięcie przycisku Dalej w przód iw przód w IE8. – lowtechsun

Odpowiedz

4

Można go po prostu umieścić na stronie internetowej, a gdy użytkownik kliknie, wywoła funkcję. Domyślną funkcją tego połączenia jest alert javascript "Kliknięty przycisk powrotu".

Aby zastąpić tę funkcję, wystarczy zastąpić funkcję OnBack. Można to zrobić za pomocą poniższego kodu.

<script type="text/javascript"> 
bajb_backdetect.OnBack = function() 
{ 
    alert('You clicked it!'); 
} 
</script> 

Spowoduje to zastąpienie alertu "Przyciśnięty z tyłu przycisku" z ostrzeżeniem "Ty kliknąłeś!".
wsparcie następujących przeglądarek IE8, IE9, Firefox, Chrome
Browser Back Button Detection
lub korzystając jquery
Catching browser back
użyciu standardowych javascript
Mastering The Back Button With Javascript

+0

Dzięki. Czy to wymaga odesłania zewnętrznych skryptów? – SivaRajini

+0

Gdy używasz dużej biblioteki, takiej jak jQuery. 3 KB nie jest rozsądnym ograniczeniem dla skryptu. – Hamix

+0

wymaga "backfix.min.js". więc potrzebuję bez żadnych zewnętrznych wtyczek wyraźnie wymienionych w tym pytaniu – SivaRajini

1

Ponieważ wspierasz IE 8 i 9, nie ma jednej metody, która pomoże ci rozwiązać ten problem. Możesz użyć interfejsu API historii HTML5, ale to nie obsługuje IE8 i 9. Jak wspomnieliście w powyższym komentarzu, można użyć window.onPopState dla chrome, firefox itp., A dla IE można utworzyć osobny plik js i użyć instrukcje warunkowe do uruchomienia, gdy użytkownik korzysta z IE.

Na przykład:

<!--[if lte IE 9]> 
    <script src="youIESpecificfile.js"></script> 
<![endif]--> 

Więcej o API HTML5 Historia tutaj: onPopState by mozilla

nadzieję, że to pomaga!

Powiązane problemy