XMLHttpRequestについて

XMLHttpRequestはブラウザによって動作が違っていたりして、クロスブラウザに対応するには、別途JavaScriptを用意したり、ブラウザによって別のインスタンス*1を返したりする必要がある。

正直、面倒だなぁと思っていながら、Google Maps APIをいじっていたら、Google Maps APIにはちゃんとクラスが用意されているではないか。

namespace GXmlHttp

This namespace provides a factory method to create XmlHttpRequest instances in a browser independent way.

例は以下。

var request = GXmlHttp.create();
request.open("GET", "myfile.txt", true);
request.onreadystatechange = function() {
  if (request.readyState == 4) {
    alert(request.responseText);
  }
}
request.send(null);

create()のstaticメソッドしかないが、これで十分。すばらしい。

*1:IEならActiveXObjectのインスタンス