popstate Event-Handler scheint nicht zu funktionieren

8

Ich habe ein Problem mit einem 'popstate' Event-Handler, das ist mein Code:

%Vor%

Ich habe erwartet, dass dieser Code eine Alarmbox öffnet, wenn er ausgeführt wird, aber nichts passiert.

Stimmt hier etwas nicht?

Danke.

    
petwho 01.01.2013, 17:01
quelle

4 Antworten

14

pushState löst nicht das Ereignis popstate aus, nur das Klicken auf die Schaltfläche Zurück / Vorwärts (oder die Verwendung der Rücktaste) oder das Aufrufen von history.back() / history.go(n) würde dieses Ereignis auslösen.

Auch in Webkit-Browsern würde ein popstate -Ereignis nach dem onload -Ereignis der Seite ausgelöst, aber Firefox und IE haben dieses Verhalten nicht.

    
otakustay 04.01.2013, 03:42
quelle
4

Nein, wird es nicht,

Laut MDN-Dokumentation

  

Beachten Sie, dass das Aufrufen von history.pushState () oder history.replaceState () kein Popstate-Ereignis auslöst. Das Popstate-Ereignis wird nur ausgelöst, indem eine Browseraktion ausgeführt wird, z. B. ein Klick auf die Zurück-Schaltfläche (oder das Aufrufen von history.back () in JavaScript).

Wie in dieser Frage wird das popstate -Ereignis nicht in Chrome ausgelöst. wenn Sie pushState() aufrufen.

    
Arun P Johny 04.01.2013 03:44
quelle
0

history.pushState() wird nicht ausgelöst popstate Ereignis per Definition.

  

Das Popstate-Ereignis wird in bestimmten Fällen ausgelöst, wenn zu einem Sitzungsverlaufseintrag navigiert wird.

Dieses Ereignis soll nur ausgelöst werden, wenn zu einem Verlaufseintrag navigiert wird, entweder durch Drücken der Zurück / Vorwärts-Taste oder history.go/back .

    
Derek 朕會功夫 04.01.2013 05:28
quelle
-1

Sie können auch Ihren popstate Callback-Handler wie folgt verbinden:

%Vor%

Suchen Sie nach weiteren Informationen zu diesem onpopstate WindowEventHandler hier .

    
Wilt 20.11.2015 09:55
quelle

Tags und Links