Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Обработчик событий на JS - кто шарит, прошу помощи!

lala007 Ученик (203), закрыт 2 года назад
Доброго времени суток! У меня такая проблема - я работаю фрилансером, и хочу повесить скрипт на сайт для автоматизации поиска заказов (через консоль или через правку кода, как лучше будет) - work*zilla*com/freelancer (сотрите звезды), а конкретно на html класс.
Суть такова - в конкретный main class="order-list" иногда добавляют новые заказы, при этом можно заметить изменение этого класса в html коде сайта (если наблюдать через f12). Так вот, при ЛЮБОМ изменении класса "order-list" таким образом скрипт на js должен кидать alert("Новые заказы!"); - чтобы я это заметил.
Хоть ты тресни, не выходит у меня написать работающий скрипт, ниже пример моего уродства:
var a = document.querySelector('order-list');
function Hk(){
alert("Новые заказы!");
}
if(a){
a.addEventListener('change', Hk);
}

Всяко пытался (и обернуть это все в функцию, типа: window.onload = function() { уродский код }, вместо change писать onchange и т. п.

Для наглядности прикреплю фото, как вообще выглядит это все (на фото прямоугольники, идущие списком вниз с названием временем выполнения и ценой - это и есть заказы в "order-list". Сам html код Мэйл ру не переносит.

Люди добрые, ПОМОГИТЕ, я уже который день бьюсь с этим. Прошу только хорошие замечания или помощь. Заранее спасибо!!!
Лучший ответ
Лайт Ягами Искусственный Интеллект (282435) 2 года назад
document.querySelector('.order-list') во-первых, если обращаешься к классу. Дальше код твой не читал. А если хочешь следить изменения DOM-дерева, то тут тебе DOM Mutation API смотреть надо, а не событие change ловить.
https://developer.mozilla.org/ru/docs/Web/API/MutationObserver
Остальные ответы
Артём Сластён Ученик (241) 2 года назад
Событие change срабатывает при изменении элемента ФОРМЫ.
Попробуйте сделать функцию которая будет получать элемент по классу, и сравнивать с таким же, но в переменной (при первом запуске естественно положить в переменную элемент).

Саму функцию засунуть в setInterval.
lala007Ученик (203) 2 года назад
Пожалуйста, можете подробнее объяснить на коде, если не затруднит ? (В JS я плохо шарю)
Артём Сластён Ученик (241) lala007, var old = document.querySelector('order-list'); function check() { if (old.innerHTML != document.querySelector('order-list').innerHTML) alert("Новые заказы!"); } setInterval(check, 10000); Как-то так. http s://learn. javascript.ru /settimeout-setinterval
Артём СластёнУченик (241) 2 года назад
По ссылке можно узнать про setInterval.
Артём СластёнУченик (241) 2 года назад
В setInterval первый аргумент - вызываемая функция, второй - интервал в милисекундах, остальные аргументы передаются в вызываюмую функцию.
lala007Ученик (203) 2 года назад
Прошу прощения, ваш код безусловно верен, я даже смог понять его, и при вводе в консоль ошибки не лезут, но заказы - как появлялись, так и появляются, и никакие alert уведомления не приходят ((
SSk-01 Мудрец (12646) 2 года назад
Ну и кому нафиг надо на халявщика время тратить?
Похожие вопросы