1
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
     {
        var Buffer= xmlHttp.responseText;     
        Buffer= Buffer.split("#%~");    
              document.getElementById("Template").innerHTML = Buffer[0];
              document.getElementById("Template1").innerHTML = Buffer[1];
              alert(Buffer+"Buffer");

上記のコードは ie では機能しませんが、ff では正常に機能します。他のオプションでも試しましたが、取得できませんでした。alert は ie と ff に同じ値を表示しますが、ie には出力されないため役に立ちません。誰でも助けることができますか?

4

2 に答える 2

1

Internet Explorerには標準XMLHttpRequestオブジェクトがないため、ActiveXObject

mdnからのスニプレット

var httpRequest;
if (window.XMLHttpRequest) { // Mozilla, Safari, ...
    httpRequest = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE 8 and older
    httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}

これにより、httpRequestがIEでも機能するようになります。console.logちなみに、あなたはおそらくinsted ofを使用することを検討したいと思うalertでしょう、そしてあなたはあなたの開発者ツール(WindowsのF12)で素晴らしい出力を得るでしょう

于 2013-03-14T08:01:51.073 に答える
0

これについては述べていませんがxmlHttp、特定のブラウザ、特にInternetExplorerではオブジェクトを別の方法で作成する必要があります。

var xhttp = function(){
  var obj = null, er = null;
  if(typeof XMLHttpRequest != 'undefined'){
    obj = new XMLHttpRequest();
  }
  else {
    try{
      obj = new ActiveXObject('Msxml2.XMLHTTP');
    }catch(er){
      try{
        obj = new ActiveXObject('Microsoft.XMLHTTP');
      }catch(er){
        obj = null;
      }
    }
  }
  return obj;
}

次のコードの使用法は次のとおりです。

xmlHttp = xhttp();

それ以降は、ほぼ同じように使用できますxmlHttp。注意すべき落とし穴や違いがいくつかあります。これが、エイドリアンが述べたようにライブラリを使用するのが良い理由です。ただし、さらに優れています。最初に根本的な違いを理解します。

于 2013-03-14T08:02:11.277 に答える