Почему window.addEventListener существует? - PullRequest
1 голос
/ 24 октября 2011

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? Должны ли мы сообщать об ошибках поставщикам браузеров?

1 Ответ

2 голосов
/ 26 октября 2011

В соответствии с HTML5, Window - это не узел, а EventTarget.Смотри http://dev.w3.org/html5/spec/browsers.html#the-window-object

...