Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fórum foi feito pra posta, então eu vo postando...
Criei um script aqui em javascript para capturar os iframes da página...
<textarea name="request" id="txt" cols="100" rows="30"></textarea>
<script>
arrayframe = new Array();
iframe = document.getElementsByTagName('iframe');
function iframes() {
//contendo iframe adiciona as url no arrayframe
for (var i = 0; i < iframe.length; i++) {
arrayframe.push(iframe[i].src);
}
// deleta todos os frame e variavel iframe é limpada
for (var i = 0; i < arrayframe.length; i++) {
elem = document.getElementsByTagName('iframe')[0];
(elem.parentNode).removeChild(elem);
}
//arrayframe contem as url então faz o request e imprime
for (var i = 0; i < arrayframe.length; i++) {
//alert(arrayframe.length);
new Ajax.Request(arrayframe[i], {
method: 'get',
onSuccess: function (transport) {
var req = transport.responseText || "Ixi deu não";
//abaixo é criado um loop para verificar se contem alguma div ja existente, vai somando indo de 1 a 100 div1, div2 ,div3 se a div4 nao existir entao cria a div 4 com o conteudo da requisiçao (req)
for (var div = 1; div < 100; div++) {
//verifica se iframe existe
if (document.getElementById('iframe' + [div]) == undefined) {
var
//cria elemento div numerado
divTag = document.createElement("div");
divTag.id = "iframe" + [div];
document.body.appendChild(divTag);
//adciona oconteudo do request na div
document.getElementById('iframe' + [div]).innerHTML = (req);
break;
}
}
},
onFailure: function () {}
});
}
arrayframe.length = 0;
}
iframes(); // inicia o processo, executa primera verificaçao de iframes na pagina
function time() // resposanvel por verificar se tem iframe na pagina até que nao tenha mais nenhum, preciso porque a requisiçao demora e o script continua
{
iframe = document.getElementsByTagName('iframe');
if (iframe.length > 0) {
for (var i = 0; i < iframe.length; i++) {
iframes()
}
}
}
tempo = setInterval("time()", 0);
function mydiv() {
div = document.getElementsByTagName('div');
for (var i = 0; i < div.length; i++) {
conteudo = document.getElementById(div[i].id).innerHTML
var textarea = document.getElementById("txt").value += div[i].id + conteudo;
document.getElementById(div[i].id).innerHTML = "";
}
}
setTimeout("mydiv()", 1500); // depois de 1 segundo já é para ter feito toda a tarefa entao passa o valor para o textarea
</script>
explicação de como o script funciona
adiciona os conteudo do iframe na div, e deleta os iframes, oque era iframe passa a ser conteudo div.
não só o conteudo do iframe da pagina como tambem o conteudo do iframe da outra pagina assim por diante...
para isso foi preciso faser uma requisição nos links do iframe para pegar o conteudo dela, nisso tem um tempo, acho que demora uns milessimos, ai entra uma dúvida o javascript funciona diferente do php?, pelo que eu sei o script funciona de cima para baixo fazendo tarefa por tarefa
se eu não colocar o setInterval, ele só pega o iframe que tem na pagina porque o tempo de fazer a requisiçao e exibir o conteudo com mais iframe já rodou o script inteiro
eu queria retirar o tempo do script, posso faser um break para aguardar até que a requisição seja concluida ai sim continuar o script ?
qualquer sugestão é bem vinda..
Carregando comentários...