Pegando o conteúdo de um iframe
Como enviar um arquivo via AJAX? Como isso não é possível, temos que usar uma velha técnica na qual cria-se um iframe e fazer o submit do form para este. Mas temos que pegar o valor do iframe via javascript para saber se correu tudo bem e o que aconteu.
Fiz alguns testes e não estava conseguindo pegar o conteúdo do iframe. O motivo? Levei 3 horas para descobrir. Não se consegue pegar o valor se o iframe não estiver no mesmo domínio que a página atual. Ou seja, nos testes eu estava usando tudo menos o domínio atual.
Para pegar o valor, existem 2 métodos:
1) Mais fácil com a jQuery:
$('iframe').contents().find('body').html();
2) Um pouco maior, mas apenas javascript:
var io = document.getElementsByTagName('iframe')[0];
if (io.contentWindow) {
return io.contentWindow.document.body.innerHTML;
} else if(io.contentDocument) {
return io.contentDocument.document.body.innerHTML;
}
Mas não esqueça. Tem que ser do mesmo domínio.