Jump to content

Archived

This topic is now archived and is closed to further replies.

TiagoSilva

[Resolvido] Internet Explorer não reconhece XML gerado por PHP

Recommended Posts

Senhores, neste tópico falei sobre pegar o conteúdo de um iframe após ele ser carregado,

 

Acontece que após o carregamento eu tenho uma XML, que consigo ler perfeitamente com o FF, IE 9, Chrome e Opera através deste código:

 

$(document).ready(function() {
$('#meu-formulario').submit(function()
{
	$('#minha-iframe').unbind('load').load(function()
	{
		var contents = $(this).contents();	

		var request_time = contents.find('request_time').text();
		var message  	= contents.find('message').text();
		var status   	= contents.find('status').text();
		var field_focus  = contents.find('field_focus').text();

		alert('resultado = ' + message);			
	});		
});
});

 

A XML retornada é essa:

 

<?xml version="1.0" encoding="iso-8859-1"?> <response> 	<request_time>1307021125</request_time> 	<message>Desculpe, mas o arquivo não é uma imagem.</message> 	<status>REQUEST_ERROR</status> 	<field_focus></field_focus> </response>

 

 

O problema é que o maltito Internet Explorer 7 (:angry:) não reconhece o conteudo do iframe!! sendo q o alerto do código JavaScript acima vem como "resultado = " ao invés de "resultado = Desculpe, mas o arquivo não é uma imagem. "

 

Eu já testei adicionando essa XML direto (como string) no código e consegui ler no IE 7 com o ActiveXObject('Microsoft.XMLDOM');

 

Pelo que detectei ele não lê diretamente a XML do iframe...

 

alquém tem alguma idéia?

 

abraços!

Share this post


Link to post
Share on other sites

Pode ser problema de acentuação, talvez você tenha que especificar o utf-8....

 

Faça um teste simples... retire os acentos e faça o teste...

Share this post


Link to post
Share on other sites

Pode ser problema de acentuação, talvez você tenha que especificar o utf-8....

 

Faça um teste simples... retire os acentos e faça o teste...

 

Já fiz estes testes parceiros, usei o encoding utf-8 removi os acentos e td mais...

 

ainda estou tentando resolver aqui

 

Detalhe, já tentei assim tbm:

 

		   
var iframe = document.getElementById('ajax-upload');

 if(iframe.contentWindow)
 		iframe = iframe.contentWindow.document;
  else
  		iframe = iframe.contentDocument;  	

alert(iframe.getElementsByTagName('response')[0].getElementsByTagName('message')[0].firstChild.nodeValue);

 

e nada :(

Share this post


Link to post
Share on other sites

outro detalhe, acabei de fazer um teste colocando um xml no src do iframe e nada...

 

ate o momento o IE 7 não reconhece o documento XML... =(

Share this post


Link to post
Share on other sites

Olá Amigos!

 

consegui resolver meu problema, o código final para capturar uma XML de dentro de um iframe é:

 

$("#form").submit(function()
{
	$("#iframe").unbind('load').load(function()
	{
		var iframe = document.getElementById('ajax-upload');

		if(iframe.contentWindow)
			iframe = iframe.contentWindow.document;
		else
			iframe = iframe.contentDocument;

		var xml = $(this).contents(); 



		/* Verificando se é Internet Explorer 7 */
		if(navigator.appName.indexOf('Internet Explorer') && (iframe.body))
		{
			var xml_string = new String(iframe.body.innerText).replace(/- /, ' ');

			var xml = $($.parseXML(xml_string));
		};				

		var request_time = xml.find('request_time').text();
		var message  	= xml.find('message').text();
		var status   	= xml.find('status').text();
		var field_focus  = xml.find('field_focus').text();

		alert(message); 			

	});
});

 

 

 

é isso ai galera, espero que seja ultil para alguém no futuro!

 

abraços!

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.