Ajaxも勉強しなおしだなぁ〜

Ajaxのライブラリーを自分なりに改良して、弄繰り回してたら、なんとなく使えるようになっていた。
でも、あまかった〜。あり難い事に、指導を受けた。
がんばろうっと。

<script type="text/javascript">
if (! /^http/.test(location.href)) alert('この環境じゃ動かない');

var getFile = (function( create ) {
  return function ( file_name ) {
    var ajax = create( );
    
    if( ajax ) {
      ajax.open( 'GET', file_name, false );
      ajax.send( null );
      return ( 200 == ajax.status ) ? ajax.responseText: 'Error';
    }
    return false;
  };
})(
    function ( ) {
      try { return new XMLHttpRequest } catch(e1) {
        try { return new ActiveXObject( 'Msxml2.XMLHTTP.6.0' ) } catch(e2) { /*
          try { return new ActiveXObject( 'Msxml2.XMLHTTP.3.0' ) } catch(e3) { */
            return null; } } // }
    }
  );

alert( getFile('sample.txt') );

</script>

やっぱりこれもいけてないので、ちょっと書き直した。
そもそも簡単に書けるのじゃないか!ということで。

var getFile = function ( file_name ) {
  var txt = false;
  var req; /*@
    try { req = new ActiveXObject( 'Msxml2.XMLHTTP.6.0' ) } catch(e1) {
      try { req = new ActiveXObject( 'Msxml2.XMLHTTP.3.0' ) } catch(e2) { @*/
        try { req = new XMLHttpRequest } catch(e3) { return null; } /*@ } } @*/

  req.open( 'GET', file_name, false );
  req.send( '' );
  txt = ( 200 == req.status ) ? req.responseText: 'Error';
  req = null;
  return txt;
};