繁体   English   中英

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

[英]inner html doesn't work in ie but works in ff

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中可以正常工作。 我什至尝试了其他选择,但很想得到它。 警报在ie&ff中显示相同的值,但是它没有用,因为它不会在ie中打印。 有人可以帮忙吗?

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然后在开发人员工具中获得不错的输出(Windows上为F12)

您无需说明,但是需要为某些浏览器(尤其是Internet Explorer)以不同的方式创建xmlHttp对象:

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 ,要注意某些陷阱/差异,这就是使用Adrian所说的库的好原因。最好先了解潜在差异。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM