В чем разница между window.onscroll и window.addEventListener - PullRequest
0 голосов
/ 18 марта 2020

Я не могу найти разницу между выполнением:

window.onscroll = () => console.log("scroll")

и этим:

window.addEventListener('scroll', () => console.log("scroll"))

, за исключением совместимости с браузером, которая, как представляется, не поддерживается в большинстве IE версий. !

это просто разница в синтаксисе? кажется, что просто удалить обработчик, используя removeEventListener, но я предполагаю, что window.onscroll = null имеет аналогичный эффект.

я что-то упустил?

Ответы [ 2 ]

1 голос
/ 18 марта 2020

Есть несколько преимуществ использования addEventListener перед onXXX. Вы можете увидеть мой разговор с ревнителем об этом на SO здесь: Как взаимодействовать моей кнопке с моей функцией

Для себя я переключался на использование addEventListener каждый раз, когда начинал использовать Content- Политика безопасности, которая запрещает эти встроенные функции. Проблема заключается в внедрении сценария, когда кто-то публикует, например, html элементы с функциями onXXX в онлайн-чате.

Разница невелика, но лучше использовать только addEventListener

1 голос
/ 18 марта 2020

Основные отличия в том, что может быть только один onscroll. Любые дополнительные onscroll, которые вы добавите, будут переопределять первое, тогда как вы можете иметь столько .addEventListener('scroll', ()=>{}), сколько захотите.

...