Не работает обработчик в консоли
Есть страница, открываю консоль и вставляю код:
document.body.addEventListener('mousemove', function(e) { console.log('bla-bla-bla'); }); Но никакой реакции не происходит. В консоль ничего не выводится. Как так? Другие скрипты работают, там анимации всякие. Первый раз такое вижу. |
Вот тебе варианты когда такое возможно:
1. всё дерьмо лежит вне body(это не валидно, но осуществимо) 2. body периодически целикиком перезаписывается(например через outerHTML) и старые слушатели на старом body больше не актальны.(встречал и на крупных сайтах) 3. console.log подменён сайтом и вообще не работает(встречается повсеместно, можно достать себе log из фрейма, если очень хочется). 4. addEventListener подменён сайтом. |
Как вариант, скрипт находится в head до body.
<head> <script> document.body.addEventListener('mousemove', function(e) { console.log('bla-bla-bla'); }); </script> </head> <body> .... </body> document.body в этом случае будет null. Проверьте ошибки в консоле. |
Aetae, а какие еще есть варианты? Просто все в body, в Event Listeners в инструментах разработчика обработчик стоит, console.log - native code, addEventListener - тоже.
voraa, я скрипт в консоль вставляю, сайт не мой. Просто хотел посмотреть как там у них работает. А там даже обработчик не хочет работать. |
Цитата:
Практически наверняка обработчик работает так и должен работать но при этом все работает не так как ты ожидаешь следовательно тебе стоит разобрать логику своих суждений приводящих к категоричному утверждению "обработчик не хочет работать" и найти в ней ошибку. С большой долей вероятности при "всплытии события" вызывается обработчик останавливающий дальнейшее всплытие. Проверить это можно с помощью отладчика браузера например в хроме можно выбрать "точки останова прослушивателя событий" и выбрать точку останова на событии "mousemove". |
MallSerg, точняк, про возможность, что кто-то остановит всплытие я и не подумал.
firep91613, попробуй так, авось перехватишь на погружении: document.body.addEventListener('mousemove', function(e) { console.log('bla-bla-bla'); }, true); |
Да, так работает. Спасибо вам.
|
Часовой пояс GMT +3, время: 11:22. |