Элемент DOM Javascript .click() не работает в addEventListener? (discord)

#javascript #dom #events #click #listener

#javascript #dom #Мероприятия #нажмите #прослушиватель

Вопрос:

Я создал быстрый и грязный скрипт для discord, позволяющий быстро «реагировать» на сообщение с помощью вызова .нажмите на div. Я открываю консоль с помощью ctrl shift i и ввожу приведенный ниже код.

 let chat;

chat = document.getElementsByClassName('da-scrollerInner')[0];
chat.addEventListener('DOMSubtreeModified', () => {
    
    let msg = chat.children[chat.childElementCount - 2];
    let want = false;
    // determine if I should react or not based on message contents
    
    if (want) {
        let reactions = msg.getElementsByClassName('da-reactionInner');
        let reaction = reactions[0];
        if (reaction) {
            reaction.click();
        }
    }
}
  

Если я сохраняю reaction как глобальную переменную и вручную вызываю reaction.click(), это работает, и реакция проходит. Это также сработало, когда я попытался использовать setInterval для непрерывной проверки наличия глобальной переменной и щелчка по ней, как только она определена. Это работает, но ни одно из решений не является идеальным.

 let globalReaction;
// DOMSubtreeModified fired, globalReaction is set

let spam;
spam = setInterval(() => {
    if (globalReaction) {
        globalReaction.click();
    }
}, 50);
  

Если я чего-то не понимаю, пожалуйста, дайте мне знать. Спасибо.