setembro 14, 2011
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,