Recuperando o conteúdo de dentro de uma iframe com jQuery

Olá Galera,

Certa vez tive o desconforto de ter que obter o conteúdo em XML a partir de um iframe. Depois de muito quebrar a cabeça e de uma breve discussão no imasters cheguei a seguinte solução utilizando jQuery:

$("#alguem_formulario").submit(function()
{
	$("#seu_iframe").unbind('load').load(function()
	{
		var iframe = document.getElementById('seu_iframe');

		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 retorno = xml.find().text; // aqui ele pega o valor contido em alguma das tags do xml			

	});
});

Nota, o código só funciona que o conteúdo do iframe estiver no mesmo dominio do seu site. Não dê uma de espertinho para capturar conteúdo alheio 😉

Até mais,

Tiago.

Add a Comment

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *