Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

90
Visualizações
Escribir javascript en línea en iframe

Tengo un código que se puede reducir a esto:

 <script> function write_to_iframe(){ let nw = document.getElementById("mysrc"); let myframe = document.getElementById("myframe"); myframe.contentWindow.document.body.innerHTML = nw.innerHTML; } </script> <iframe id="myframe" width="230" height="95"></iframe> <div id="mysrc"> <script> function hello(){ alert("hello world"); } </script> <a href="#" onclick="hello(); return false;">SayHello</a><br> </div>

Escribe el código en el div al iframe. Esa parte parece funcionar. Sin embargo, cuando hago clic en el enlace SayHello en el iframe, aparece un error de JavaScript que indica que no se puede encontrar la función hello().

¿Qué está fallando aquí? ¿Y cómo puedo declarar una función de javascript en línea en el marco que funciona?

No estoy interesado en archivos javascript externos o código que ponga todo en el enlace (como onclick="javascript:alert('hi');").

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Reconsideraría usar un iframe con innerHTML e intentar llamar a una función en el documento principal desde él. El soporte puede variar en diferentes navegadores, el acceso de iframes a su padre es muy limitado. Si ambas cosas están en el mismo dominio, entonces no rompe la política de CORS y puede hacer más, pero aún hay mejores opciones.

Si insiste en usar iframe, consideraría crear una ruta externa para él (mismo dominio), ej. iframe/embed.html coloque HTML allí normalmente, luego cambie la ubicación después de hacer clic en iframe/embed.html#callHello . Y en el documento principal agregaría eventListner para detectar el cambio de ubicación.

 const iframe = document.getElementById("iframeId"); window.open("https://example.com/iframe/embed.html", "iframeId"); iframe.addEventListener("load", () => { if (iframe.contentWindow.location.href.includes('#callHello')) { hello(); } });
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda