Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Alejandro

[Resolvido] problemas com InnerHTML no IE

Recommended Posts

Olá pessoal,

 

To quebrando a cabeça aqui mas nada....

Eu faço umas pesquisa em ajax e exibo os resultados em uma table, a página onde é feita a consulta retornas umas linhas para essa table.

Eu uso o dom para exibir, document.getElementById(o_id_do_campo).innerHTML = minha_requisicao.responseText;

 

No Mozzila funciona normalmente, mas no internet explorer não funciona, da "erro em tempo de execução". Eu criei uma textarea e joguei os resultados para ela, funcionou normalmente, assim, exibiu os códigos html dentro dela, não ia formatar bonitinho minhas linhas...

 

Alguém sabe alguma maneira de resolver??

Tentei cada coisa já... cheguei a fazer um monte de try e catch tentando exibir usando dom, por nome, layers, all... e nada

 

try {			   document.getElementById("resposta").innerHTML = texto;			} catch(erro_dom) {			   try {				  document.all["resposta"].innerHTML = texto;			   } catch(erro_all) {				  try {					 document.layers["resposta"].innerHTML = texto;				  } catch(erro_layers) {					 try {						document.all["laresposta"].innerHTML = texto;					 } catch(e_all_name) {						try {						   document.layers["laresposta"].innerHTML = texto;							} catch(fatal_error) {}					 }				  }			   }
Alguém sabe como resolver esse problema do innerHTML no internet explorer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estranho cara aqui eu uso assim e funciona, veja:

 

//Lê o textovar texto = xmlhttp.responseText;				//Exibe o texto no div resultadovar resultado = document.getElementById("resultado");resultado.innerHTML = texto;

talvez o problema seja na leitura do obejto xmlhttprequest, como está fazendo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, eu não sei o que ta acontecendo, antes eu tinha feito uns scripts e insiria no html usando innerHTML e funcionava sem problema nenhum.

 

a função por completa

function gonzo() { http_request = false;   if (window.XMLHttpRequest) {	  http_request = new XMLHttpRequest();	  if (http_request.overrideMimeType) { 		 http_request.overrideMimeType('text/xml');	  }   } else if(window.ActiveXObject) {	  try {		 http_request = new ActiveXObject("Msxml2.XMLHTTP");	  } catch (e) {		 try {			http_request = new ActiveXObject("Microsoft.XMLHTTP");		 } catch (e) {} 	  }   }   //Configurações	 page = 'getEmpresa.php';   //------------------------   today = new Date();   day = today.getDate();	_day = new String(day);	day = (_day.length < 2) ? '0' + day : day;   month = today.getMonth() + 1;	_month = new String(month);	month = (_month.length < 2) ? '0' + month : month;   year = today.getFullYear();      page += '?query=';		if(document.getElementById('seletor').value == 1) combo = 'razao';   else if(document.getElementById('seletor').value == 2) combo = 'fantasia';   else if(document.getElementById('seletor').value == 3) combo = 'codigo';   page += combo + '&sql=' + document.getElementById('empresa').value + '&cnpj=';		if(document.getElementById('cnpj').value != "")		   page += document.getElementById('cnpj').value;		else		   page += 'null';   page += '&cid=';		if(document.getElementById('cidade').value != "")		   page += document.getElementById('cidade').value;		else		   page += 'null';   page += '&uf=';		if(document.getElementById('estado').value != "")		   page += document.getElementById('estado').value;		else		   page += 'null';   page += '&dt1=';		if(document.getElementById('d1').value != "" && document.getElementById('m1').value != "" && document.getElementById('a1').value !="")		   page += document.getElementById('d1').value +'-'+ document.getElementById('m1').value +'-'+ document.getElementById('a1').value;		else		   page += 'null';   page += '&dt2=';		if(document.getElementById('d2').value != "" && document.getElementById('m2').value != "" && document.getElementById('a2').value != "")		   page += document.getElementById('d2').value +'-'+ document.getElementById('m2').value +'-'+ document.getElementById('a2').value;		else {		   document.getElementById('d2').value = day;		   document.getElementById('m2').value = month		   document.getElementById('a2').value = year;		   page += day +'-'+ month +'-'+ year;		}   page += '&version=' + today.getMilliseconds();	      http_request.onreadystatechange = jaxa;   //window.alert(page);  http_request.open('GET', page, true); http_request.send(null);}function jaxa () {	  if(http_request.readyState == 4) {		 if(http_request.status == 200) {		 var texto = http_request.responseText;			try {			   document.getElementById("resposta").innerHTML = texto;			} catch(erro_dom) {			   try {				  document.all["resposta"].innerHTML = texto;			   } catch(erro_all) {				  try {					 document.layers["resposta"].innerHTML = texto;				  } catch(erro_layers) {					 try {						document.all["laresposta"].innerHTML = texto;					 } catch(e_all_name) {						try {						   document.layers["laresposta"].innerHTML = texto;							} catch(fatal_error) {}					 }				  }			   }			}		 }	  }	  //window.alert(http_request.status+"-"+http_request.readyState);}

Eu crio uma url de acorodo com os campo preenchidos, que fica na variável page, faço a requisição. Nenhum problema até ai, o problema ta quando vou exibir os resultados, não aparece no internet explorer.

 

onde recebe os resultados é:

<table name="laresposta" id="resposta" class="borda_azul" width="100%" bgcolor="#FFFFFF" border="0" cellpadding="0" cellspacing="0" style="margin-top:-5px"></table>

e nada...

Tô pensando em fazer uma resposta xml, ler em javascript e usar o createElement para criar a tabela e as linhas, mas isso vai dar um trabalhão e o chefe já ta com o projeto atrasado... é f***

 

Se bem que eu to jogando em uma table, mas que estranho... vou tentar jogar na div e a página da requisão monta a tabela por inteira

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cacacasss deu certo!!!Putz... no internet explorer não aceitava o innerHTML em uma table, só em div e span(span não tenho certeza) mas valeuuuuuuuuu!!!!Brigadão

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.