2013-02-07 15 views
5

Ich habe versucht, diesen Code in der Konsole des Browsers eingeben:Bindung popstate Ereignis nicht funktioniert

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

und klicken Sie dann auf die Schaltfläche Zurück. Keine Warnung hat gezeigt. Mache ich etwas falsch? Oder ist es nicht erlaubt, Popstate-Ereignisse an eine Seite von der Konsole aus zu binden?

Mit Chrome 24 und Firefox 18

Antwort

10

Typ dieses in die Konsole

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

klicken Sie dann auf die Schaltfläche Zurück.

+0

Können Sie, warum die zusätzliche history.pushState() Teil erklären? – Phuein

+1

@Phuein the history.pushState() drückt die URL eines neuen Historieneintrags. Dem Browser ist es egal, ob es sich um eine gültige URL handelt, und die Seite wird nicht mit der neuen URL neu geladen. Da die neue URL leer ist, ändert sich die URL in der Adressleiste nicht, aber wenn Sie auf die Zurück-Schaltfläche klicken, wird die Warnung ausgelöst. –

3

Ich ziehe Hinzufügen der popstate Hörer wie folgt, um das Überschreiben zu verhindern, was schon ist in window.onpopstate:

window.addEventListener('popstate', function(){alert(1);});