#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);
Если я чего-то не понимаю, пожалуйста, дайте мне знать. Спасибо.