2010-01-15 15 views

Respuesta

24

usted puede utilizar el evento beforeunload para activar su código a ejecutar antes de la navegación ... Si necesitas algo más específico (por ejemplo, sólo se inició en navegaciones su código), la n Recomiendo que factorice el cambio de código window.location en una función separada, y agregue un gancho para su lógica personalizada.

+0

¿Funciona esto para aplicaciones de una sola página? En marcos angulares y otros SPA, la URL cambia pero la página no se descarga/recarga, por lo que me pregunto si este evento se dispara. –

+0

generalmente los marcos proporcionan eventos personalizados para hacerse cargo de los cambios de ubicación – Nobita

+1

@CarlG, en aplicaciones de una sola página, puede usar 'onhashchange' para registrar un controlador si el hash de la url ha cambiado. – shuangwhywhy

14

Es posible que desee ver en el post de Ben Nadel en lo que respecta a hacer esto, puede ser exactamente lo que está buscando

Binding Events to non DOM objects with jQuery

su ejemplo en los post habla acerca de cómo crear un controlador de eventos que se desencadena un evento de cambio cuando se cambia window.location

+7

En efecto, la solución parece 'setInterval' y comprobar periódicamente. –