2013-03-14 111 views
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"); 

上面的代碼doenot在ie中工作,但它在ff中工作正常。我甚至嘗試過其他選擇,但是明白了。 警報在ie & ff中顯示相同的值,但是它沒有用,因爲它沒有在ie中打印。誰能幫忙?內部html不能在ie中工作,但在ff工作

+3

你應該使用類似Mootools或jQuery的東西來獲得更好的跨瀏覽器支持。即使標準「非常清晰」,瀏覽器的區分也相當重要。 – Adrian 2013-03-14 07:35:07

+0

什麼HTML元素是'Template'和'Template1'? – Apurv 2013-03-14 07:39:40

+0

你是如何創建你的'xmlHttp'對象的?它們在瀏覽器中有所不同..我想我說的是,你如何確信這是一個「innerHTML」問題? – Pebbl 2013-03-14 07:52:56

回答

1

Internet Explorer中沒有這個非標準XMLHttpRequest對象,所以你必須使用ActiveXObject

sniplet從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你probly加溫看insted的的alert然後你在您選擇開發工具一個不錯的輸出(在Windows F12)

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,但是要注意一定的缺陷/差異,這就是爲什麼使用Adrian所說的庫很好的原因。但是它更好理解首先是潛在的差異。

相關問題