« XAMPPって何? | メイン | AJAXお役立ちリンク »

XMLHttpRequestオブジェクトのインスタンス化

AJAXで利用するXMLHTTPRequestオブジェクトはFirefoxなどではネイティブにサポートされていますが、マイクロソフトのIEではActiveXコントロールを通じて実装されています。Javascriptではブラウザに応じてXMLHttpRequestオブジェクトをインスタンス化する必要があります。

ブラウザの種類に応じてインスタンス化するコードは以下になります。

  • Firefoxなど
    xmlobj=new XMLHttpRequest();
  • Internet Explorer
    xmlobj=new ActiveXObject('Microsoft.XMLHTTP');

ブラウザのタイプをwindow.ActiveXObjectでチェックして、インスタンス化を切り替えることもできますが例外を扱うtry-catchブロックを利用する方が一般的なようです。具体的には以下のコードになります。

    try{
        // Firefox, Netscapeなどでのインスタンス化
        xmlobj=new XMLHttpRequest();
    }
    catch(e){
        try{
            // MS-IEではActiveXObjectとして生成
            xmlobj=new ActiveXObject('Microsoft.XMLHTTP');
        }
        catch(e){
            // Ajaxはサポートされない
            xmlobj=null;
            return false;
        }
    }

tryブロックの処理が失敗すると例外処理であるcatchブロックに移ります。ここでは、さらにtry-catchをネストさせて処理しています。

トラックバック

このエントリーのトラックバックURL:
http://www.yumemaro.com/apps/mt-tb.cgi/18

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)