Jump to content
Fórum Script Brasil
  • 0

Ajuda com iframe


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

Question

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 to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.6k
×
×
  • Create New...