javascript - ¿Hay una manera de tener una devolución de llamada onload después de cambiar window.location.href?
(2)
Esencialmente, lo que me gustaría hacer es algo para el efecto de esto:
window.location.href = "some_location";
window.onload = function() {
alert("I''m the new location and I''m loaded!");
};
¿Hay alguna forma de obtener una devolución de llamada cuando se carga la nueva ubicación de la ventana? (El código anterior no funciona.)
Al establecer window.location.href en un nuevo valor, el navegador simplemente debe ir a la página siguiente.
Al igual que:
window.location.href = "http://www.google.com/";
Una vez que el navegador ingresa a google.com, ya está, tu Javascript ya no se está ejecutando, y no hay forma de que tengas ningún tipo de devolución de llamada, ya que el navegador ya no ejecuta tu página.
Por tanto, la respuesta es no.
No, no puedes hacerlo como quieras. Cargar una nueva página cierra el documento actual y comienza a cargar un nuevo documento. Cualquier código en su documento actual ya no estará activo cuando la nueva página comience a cargarse.
Para tener un controlador de eventos cuando se cargue el nuevo documento, deberá insertar un código en el documento de la nueva página o cargar el nuevo documento en un iframe y monitorear la carga del iframe desde su documento actual.