Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Pegando texto de um iframe e buscando uma palavra

Boa noite, amigos. Preciso desenvolver uma feature que chame um método (visualiza), esse método busca no banco uma anotação com o id passado, abre uma janela (iframe) e mostra conteúdo da anotação nesse iframe (eu mostraria em uma div mas como é um sistema legado preciso pegar do iframe).

Na verdade eu faria essa busca no banco mas não tenho acesso para isso, tenho que abrir a visualização no JS e buscar mesmo.

Dado o conteúdo dessa anotação, eu preciso buscar uma string, caso positivo alertar('ok').

var numero = 37353;
var content = ""; 
visualizar(numero);

content = document.querySelector("#textoForm iframe").contentDocument.body.innerHTML;

//Já testei com textContent e innerText e ocorre o mesmo problema

var index = content.indexOf("Rafael");
console.log(index);
if (index != -1){
    alert("achou");   
}else{
    console.log("nada encontrado");
}

O problema é, quando eu imprimo a variável content, ela retorna "";

Mas se eu abrir o console do navegador (F12), digitar

document.querySelector("#textoForm iframe").contentDocument.body.innerHTML;

Ela imprime normalmente o conteúdo do iframe.

Não sei o que pode estar havendo de errado.

5 respostas
solução!

Você carregou o script no head? Se carregou o elemento não será encontrado, porque a parte o iframe n foi carregado ainda. Se o iframe demora a carregar terá problema também. Usa um setTimeout.

Na verdade. Eu estou usando o ScratchPad do navegador (Firefox), caso eu consiga atingir esse objetivo, vou submeter essa feature pros responsáveis como sugestão de melhoria no sistema.

É algo importante mas que ainda não existe implementação.

Vou tentar dar o setTimeout, pra ver se resolve.

It Works!!! Valeu, Flávio.

Boa!!!!