El HTML5 history spec es peculiar.
history.pushState()
no envía un evento popstate
o carga una página nueva por sí mismo. Solo pretendía llevar el estado a la historia. Esta es una función de "deshacer" para aplicaciones de una sola página. Debe enviar manualmente un evento popstate
o usar history.go()
para navegar al nuevo estado. La idea es que un enrutador pueda escuchar los eventos popstate
y hacer la navegación por usted.
Algunas cosas a tener en cuenta:
history.pushState()
y history.replaceState()
no distribuyen popstate
eventos.
history.back()
, history.forward()
, y los botones hacia atrás y hacia adelante del navegador envían popstate
eventos.
history.go()
y history.go(0)
hacer una recarga de página completa y no despachar popstate
eventos.
history.go(-1)
(volver 1 página) y history.go(1)
(reenviar 1 página) enviar popstate
eventos.
Puede usar la API de historial de esta manera para enviar un nuevo estado Y enviar un evento de estado emergente.
history.pushState({message:'New State!'}, 'New Title', '/link'); window.dispatchEvent(new PopStateEvent('popstate', { bubbles: false, cancelable: false, state: history.state }));
luego espera que popstate
eventos con un router.
Autoadhesivo desvergonzado. Excelente publicación y plugin sin embargo. :) – Purag