Что-то блокирует addEventListener (тип, обработчик) для работы в DOM - PullRequest
0 голосов
/ 08 ноября 2019

Я изучаю Vanilla JS и DOM и тестирую некоторые коды в консоли. У меня есть вопрос.

Шаг 1) Перейдите на веб-сайт "http://rehub.wpsoul.com" в хром.

Шаг 2) Откройте консоль.

Шаг 3) Написатьвнизу кода в консоли.

var neww = window.open('/')
neww.addEventListener('click', function() {
    alert('hi');
})

Этот код не работает. Однако, если я изменю тип события с «click» на «scroll», он будет работать хорошо.

Чтомешает работать в DOM?

Всякий раз, когда я тестировал этот код, некоторые веб-сайты не работают с типом событий, например "загрузка", как этот веб-сайт.

У меня была головная боль по этому поводунесколько дней. Я хотел бы узнать причину и принцип DOM и JS.

Мне нужна ваша помощь, спасибо! :) 1020 *

1 Ответ

1 голос
/ 08 ноября 2019

Поскольку вы открываете новое окно, а его DOM еще не доступен или не готов, событие не становится привязанным. Пожалуйста, попробуйте следующий код:

var neww = window.open('/')
neww.addEventListener('load', function() {
    neww.document.body.addEventListener('click', function() {
        alert('hi');
    });
});
...