Стандарт жизни HTML охватывает это.
Выдержки
Обработчики событий открываются двумя способами.
Первый способ, общий для всех обработчиков событий, - это IDL-атрибут обработчика событий.
Второй способ - использовать атрибут содержимого обработчика событий. Таким образом предоставляются обработчики событий для элементов HTML и некоторые обработчики событий для объектов Window.
Для обоих этих двух способов обработчик события предоставляется через имя, которое представляет собой строку, которая всегда начинается с «on» и сопровождается именем события, для которого предназначен обработчик.
IDL и атрибуты содержимого не определяют таксономию имен событий, но поскольку атрибуты IDL видны как свойства в JS без setAttribute
или getAttribute
, то вышеупомянутый отрывок в основном говорит, что каждый обработчик событий должен быть представлен как свойство с on
именем с префиксом.
При этом объект JS с этими именами свойств может не являться фактической целью события . Живой стандарт приводит body
в качестве одного примера элемента с атрибутами IDL для обработчиков, нацеленных на соответствующий экземпляр Window
... Хотя сам элемент body
реализует EventTarget
.
Таким образом, в общем, вы обязаны проверить цель, но вы можете по крайней мере рассчитывать на каждое стандартное событие N
, соответствующее onN
, которое вы можете установить для некоторого EventTarget
в вашем источнике JavaScript.