Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda com iframe


Guest {N}(h) e (lp){ed}

Pergunta

Guest {N}(h) e (lp){ed}

tenho uma página que contém um iframe, preciso de criar dentro do iframe, um elemento input.

peguei um script aqui no forum mesmo e tentei adaptar, só que não deu certo, o elemento não é criado.

o firefox aponta o erro: 'document.getElementById(aID) has no properties'

alguém pode ajudar?

aí vai o código:

<html>
<head>
<title>Manipulação de iframe</title>

&lt;script>

function getIFrameDocument(aID)
{
  var rv = null;

  if (document.getElementById(aID).contentDocument){
    rv = document.getElementById(aID).contentDocument;
  } else {
      rv = document.frames[aID].document;
  }
  return rv;
}

function  teste2()
{
    doc = getIFrameDocument("frame1");
    as= document.createElement('input');
    as.type='text';
    doc.getElementsByTagName('body')[0].appendChild(as);


      }
teste2();
</script>

</head>
<body>
<iframe src="http://www.google.com.br" id="frame1"></iframe>
</body>
</html>

obrigado.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Opa. Existem alguns erros no script, e todos na função teste2().

1º A chamada dela está no lugar errado. Isso porque o javascript ainda não "viu" o iframe, pois o script está sendo executado antes do objeto iframe ser criado.

Para solucionar isso, você deve usar a chamada da função após o objeto, ou usar o window.onload para fazer a chamada da função assim que o documento for carregado.

2º Olha só:

as= document.createElement('input');
    as.type='text';
    doc.getElementsByTagName('body')[0].appendChild(as);
as=document.createElement('input'). Você deve criar o elemento usando o "document" do iframe e não da janela pai. O código deve ficar assim:
function  teste2(){
    doc = getIFrameDocument("frame1")
    var as= doc.createElement('input')
    as.type='text'
    doc.body.appendChild(as)
}
window.onload=function(){teste2()}

Assim que o documento estiver sido carregado, a função teste2() começa e cria usando o "doc" para criar o elemento input, e logo após adicionando ao doc.body o valor do input.

Outra coisa, desista de fazer isso em páginas que não são suas. Se tentar fazer isso com páginas como google, você vai ter erro de acesso, já que o conteúdo do iframe não pode ser mudado se a página estiver em domínios diferentes. A página dentro do iframe deve ser sua, dentro do seu host, do seu domínio.

Abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...