2013-02-07 42 views
5

starałem się wpisać ten kod do konsoli przeglądarki:wiążące wydarzenie popstate nie działa

window.onpopstate = function() {alert(1);} 

a następnie kliknij przycisk Wstecz. Alert nie został wyświetlony. Czy robię coś nie tak? Czy też nie jest dozwolone wiązanie zdarzenia popstate do strony z konsoli?

Korzystanie z Chrome 24 i Firefoksa 18

Odpowiedz

10

wpisz w konsoli

window.onpopstate = function() {alert(1);}; history.pushState({}, ''); 

następnie kliknij przycisk Wstecz.

+0

Czy możesz wyjaśnić, dlaczego dodatek history.pushState() udział? – Phuein

+1

@Phuein the history.pushState() przesyła adres URL nowej historii. Przeglądarka nie dba o to, czy jest to prawidłowy adres URL i nie odświeża strony przy użyciu nowego adresu URL. Ponieważ nowy podany adres URL jest pusty, adres URL na pasku adresu nie zmienia się, ale po kliknięciu przycisku Wstecz pojawia się alert. –

3

Wolę dodanie słuchacza popstate następująco, tak aby zapobiec nadpisaniu co jest już w window.onpopstate:

window.addEventListener('popstate', function(){alert(1);}); 
Powiązane problemy