内部html在ie中不起作用,但在ff中起作用

时间:2013-03-14 07:32:17

标签: javascript jquery

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");

上面的代码doenot工作,但它在ff中工作正常。我甚至尝试过其他选择但是可以得到它。 警报在ie&中显示相同的值ff但它没有用,因为它没有打印ie。有人可以帮忙吗?

2 个答案:

答案 0 :(得分: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 alert {{1}},然后在你的开发者工具(Windows上的F12)中得到一个不错的输出

答案 1 :(得分:0)

您没有说明这一点,但您需要为某些浏览器创建xmlHttp对象,尤其是Internet Explorer:

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,有一些陷阱/差异需要注意,这就是为什么使用库的好处阿德里安......然而,首先要了解潜在的差异会更好。