2011-08-07 13 views
9

readystatechangeしかし、後者の方法は唯一に思わXMLHttpRequestオブジェクトのための標準的なイベントであり、そのための機能がイベントをリッスンいずれか古いスタイルのプロパティに対するaddEventListenerを使用したreadystatechange?

r.onreadystatechange = function() { ... }; 

など

r.addEventListener('readystatechange', function() { ... }, false); 

を使用して持っていることができるはずですFirefoxとChromeではうまく動作しますが、Operaではエラーは発生せず、単に効果がありません。なぜこれが正しいのでしょうか?

+1

少なくともW3C仕様で定義されています。http://www.w3.org/TR/XMLHttpRequest/#event-handler-attributes –

答えて

8

MDN docs on XMLHttpRequestは、具体的にはreadystatechangeイベントの発生については言及していませんが、W3C docsが必要です。

一般的なルール「onxxxはイベントxxxのイベントハンドラです」は、Operaの動作が正しくないことを意味します。

0

これは私のために働いた。

xhr.addEventListener('readystatechange', evt => { 
    if (this.readyState == 4 && this.status == 200) { 
     console.log(this.responseText); 
     return this.responseText; 
    } 
}, false); 
関連する問題