В дополнение к проблеме, о которой предыдущий ответ упоминал полностью и правильно, которая была сосредоточена на типе использования обработчиков событий для вызова функций или выполнения некоторого другого JavaScript (я имею в виду использование встроенной модели регистрации и традиционной модели регистрации по сравнению с использованием addEventListener (. ..), removeEventListener (...) или dispatchEvent (...)), а также для добавления дополнительной информации к этому дублированному вопросу , есть еще одно большое различие между DOM Level 0 и DOM Level 2 событие модель.
С помощью модели событий DOM Level 2 просто возможно, что конкретный объект (например, с помощью: document.getElementById ("elementId")), с конкретным событием (одно из нажатий или загрузка, ...) может быть зарегистрировано любое количество функций обработчика событий. Например:
<!DOCTYPE html>
<html>
<body>
<button id="btn">Test it</button>
<script>
document.getElementById("btn").addEventListener("click", function(){alert("first alert");});
document.getElementById("btn").addEventListener("click", function(){alert("second alert");});
</script>
</body>
</html>
Это была одна из проблем в DOM Level 0, которая решается с помощью других решений .