簡體   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