DOM4说EventTarget
有addEventListener
方法,Node
继承自EventTarget
。
现在Document
继承自Node
,因此document.addEventListener
有效。
但Window
不是Node
。为什么window方法允许您附加事件监听器?
当然Window
对EventTarget
或.addEventListener
旁白:我为什么关心?在撰写DOM-shim时,我试图模仿window.addEventListener
会被粉碎,因为IE8中不存在window.fireEvent
。我很高兴不必支持window.addEventListener
进一步:如果window.addEventListener
是非标准的,我们应该尝试摆脱它并将其替换为document.addEventListener
吗?我们应该向浏览器供应商提交错误吗?
答案 0 :(得分:2)
根据HTML5,Window不是Node,但它是一个EventTarget。见http://dev.w3.org/html5/spec/browsers.html#the-window-object