使用addEventListener与旧式属性的readystatechange?

Del*_*ani 13 javascript xmlhttprequest

readystatechangeXMLHttpRequest对象的标准事件,因此应该能够使用函数监听事件

r.onreadystatechange = function() { ... };
Run Code Online (Sandbox Code Playgroud)

以及

r.addEventListener('readystatechange', function() { ... }, false);
Run Code Online (Sandbox Code Playgroud)

但是,后一种方法似乎只适用于Firefox和Chrome,但不适用于Opera,它不会引发错误但只是没有效果.为什么会这样,这是否是正确的行为?

dte*_*ech 11

关于XMLHttpRequestMDN文档没有特别提到引发readystatechange事件,但W3C文档确实需要它.

结合一般规则" onxxx是事件的事件处理程序xxx"意味着Opera行为是不正确的.