2016-05-31 6 views
-1

私は、古いブラウザのJavaScriptを使ってPHPファイルをロードしますか?だから私は自分のファイルを取得するためのXMLHttpRequestを使用していますが、onreadystatechangeはIE8 :(IEHのXMLHttpRequest onreadystatechange

にこの私のコードは動作しません:

function getOldBrowserBlock() { 

    var blockOldBrowser = document.getElementById('js-old-browser'), 
     filePath = '/wp-content/themes/bla/includes/alert-ie.php', 
     x; 

    if (XMLHttpRequest) { 
     x = new XMLHttpRequest(); 
    } else { 
     x = new ActiveXObject('Microsoft.XMLHTTP'); 
    } 

    // On charge le fichier 
    x.open('GET', filePath, false); 

    x.send(); 

    /** 
    * Description for onreadystatechange 
    * @private 
    * @method onreadystatechange 
    * @return {Object} description 
    */ 
    x.onreadystatechange = function() { 

     alert('this dont work on IE8'); 

     if (x.readyState == 4) { 

      // Si le fichier est chargé 
      if (x.status == 200) { 


       // On affiche le message 
       blockOldBrowser.innerHTML = x.responseText; 
      } 

     } 

    }; 

} 

あなたのアイデアを持っていますか

Thakあなた

+0

'o 'send'コールを実行する前にnreadystatechangeを実行してください –

+0

これはブラウザ上で動作すると非常に混乱します。あなたは 'false'を3番目のパラメータとして使用しています。これは要求を同期させるものです。この場合、sendステートメントがブロックされるのではなく、readystate変更コールバックは決して呼び出されません。 – devnull69

+0

私はonreadystatechangeの後にsend()を追加しようとしましたが、結果がなく、asynchroneのためにtrueを追加しました –

答えて

0

?!私は同様の問題に直面していましたが、最初に送信する前にonreadystatechangeを設定しようとしました。this投稿を参照してください、私のケースでうまくいった

+0

私はonreadystatechangeの後にsend()を追加しようとしましたが、結果はありません。 –

関連する問題