Итак, я открыл окно с window.open('https://example.com/foo')
.Я нахожусь в том же домене и должен прослушать событие загрузки.
Событие загрузки срабатывает для первого window.open
, но я не могу получить другое событие, когда я изменяю URL с помощью window.replace('https://example.com/bar')
CodeSandbox
- Откройте консоль браузера
- Нажмите кнопку открытия (просмотрите журнал в консоли)
- Нажмите кнопку переключения (обратите внимание, что ничего не регистрируется)
Полный пример
let open = null;
document.getElementById('open-button').addEventListener('click', () => {
open = window.open('https://523k29z484.codesandbox.io/pages/foo.html');
open.addEventListener('load', () => console.log('this fires'));
});
document.getElementById('switch-button').addEventListener('click', () => {
open.addEventListener('load', () => console.log('before change does not fire'));
open.location.replace('https://523k29z484.codesandbox.io/pages/bar.html');
open.addEventListener('load', () => console.log('after change does not fire'));
});