2013-03-14 114 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所说的库很好的原因。但是它更好理解首先是潜在的差异。

相关问题