DOM4 говорит, что EventTarget
имеет метод addEventListener
и Node
наследуется от EventTarget
.
Теперь Document
наследуется от Node
, поэтому имеет смысл, что document.addEventListener
работает.
Однако Window
не является Node
. Почему метод окна позволяет подключать прослушиватели событий?
Конечно Window
ничего не говорит о EventTarget
или .addEventListener
В сторону: Почему меня это волнует? Во время написания DOM-shim мои попытки подражать window.addEventListener
потерпели крах, потому что window.fireEvent
не существует в IE8. Было бы неплохо не поддерживать window.addEventListener
Далее: Если window.addEventListener
нестандартно, следует ли нам пытаться избавиться от него и заменить его на document.addEventListener
? Должны ли мы сообщать об ошибках поставщикам браузеров?