Ajax document.getElementById (). INnerHTML Problema com o IE?
-
21-09-2019 - |
Pergunta
Antes de alguém dizer que não li, posso dizer que leio quase tudo ligado à minha pergunta. Mas não consegui encontrar minha resposta. Então, eu tenho um script AJAX simples que carrega meu arquivo externo dentro do Div predefinido. Este é o código daqueles scripts:
function loadTwitter()
{
var xmlHttp;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("Your Browser Don't Support AJAX!");
return false;
}
}
}
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
document.getElementById("column_twitter").innerHTML=xmlHttp.responseText;
}
}
xmlHttp.open("GET","../includes/home/twitter.php",true);
xmlHttp.send(null);
}
Funciona muito bem em todos o navegador que eu testo (FF, Opera, Chrome, Safari), mas dentro do IE7 não quer injetar meu arquivo PHP externo na div. Ele sempre permanece o texto padrão que eu escrevo dentro da div ... e acho que o problema está nesta linha:
document.getElementById("column_twitter").innerHTML=xmlHttp.responseText;
Então, alguma sugestão de como corrigir isso para o IE (7 ou acima)?
Solução
Eu acho que você seria melhor usando uma estrutura JavaScript, como jQuery Isso permite que você se concentre em implementar seus recursos em vez de compatibilidade do navegador e interação de rede de baixo nível. Usando o jQuery você pode simplesmente fazer:
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js">
</script>
<script type="text/javascript">
$.get( '../includes/home/twitter.php', function(data) {
$('#column_twitter').html( data );
});
</script>
Outras dicas
Sei que essa é uma pergunta antiga, mas encontrei uma coisa semelhante hoje e queria publicá -la para outros, caso você experimente esse problema. Provavelmente, isso está sendo causado pela sua tag "Column_twitter" sendo incorporada em várias declarações de divisão ou em uma tabela. O IE7 não gosta disso por algum motivo.
Boa sorte!