Есть ли способ иметь обратный вызов onload после изменения window.location.href?

По сути, я хотел бы сделать это:

window.location.href = "some_location";
window.onload = function() {
  alert("I'm the new location and I'm loaded!");
};

Есть ли способ иметь обратный вызов, когда загружается новое местоположение окна? (Вышеприведенный код не работает.)

Ответы

Ответ 1

Нет, вы не можете сделать это так, как хотите. Загрузка новой страницы закрывает текущий документ и начинает загрузку нового документа. Любой код в текущем документе больше не будет активен, когда новая страница начнет загружаться.

Чтобы иметь обработчик события при загрузке нового документа, вам нужно либо вставить код в документ новой страницы, либо загрузить новый документ в iframe и контролировать загрузку iframe из вашего текущего документа.

Ответ 2

Настройка window.location.href для нового значения указывает браузеру просто перейти на следующую страницу.

Так же:

window.location.href = "http://www.google.com/";

Как только браузер перейдет на страницу google.com, ваш Javascript больше не будет выполняться, и вам не будет никакого обратного вызова, потому что браузер больше не запускает вашу страницу.

Итак, ответ - нет.