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

151
Visualizações
Ejecutar una función js en html mientras la etiqueta del script tiene un conjunto de atributos diferidos

I el atributo defer de la etiqueta del script en la sección <head> de los archivos HTML. Esto casi siempre significa que no puedo ejecutar funciones js en el HTML ya que el archivo js solo se carga después de que se haya cargado el archivo HTML.

Me encontré con una situación en la que necesitaba ejecutar una función js en mi archivo HTML, pero no quería eliminar el atributo diferido de la etiqueta del script debido a otras funciones en el archivo js. Miré la posibilidad de usar async , pero tampoco fue útil.

¿Alguna idea de cómo se podría hacer esto... además de usar diferir? Todavía me gustaría mantener la etiqueta del script en la head , pero hacerlo de esa manera significaría que no tengo instrucciones abiertas (no basadas en funciones) en el archivo js vinculado... lo cual no siempre es ideal.

Aquí hay una muestra del archivo HTML

temp.html

 <!DOCTYPE html> <html lang="en"> <head> <script src="temp.js" defer></script> <title>Defer et al</title> </head> <body> <script> runThisFunction('Home'); </script> </body> </html>

Y aquí hay una muestra del archivo js

temp.js

 function runThisFunction(varin) { console.log(varin); }

Si elimino el aplazamiento del archivo js, la función se ejecutará; si lo dejo allí, o uso async en su lugar, la función no se ejecutará porque aún no se ha cargado.

Cualquier ayuda en este pequeño problema será apreciada.

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

0

La mejor manera de hacer esto sería refactorizar su secuencia de comandos para que contenga un punto de entrada en una función y ejecutar esa función una vez que se carga el DOM. En lugar de, por ejemplo

 // temp.js function runThisFunction(varin) { console.log(varin); } document.querySelector('.foo').textContent = 'doing stuff'; // other code here

poner toda la funcionalidad que depende de la página que se está cargando en su propia función:

 // temp.js function runThisFunction(varin) { console.log(varin); } function init() { document.querySelector('.foo').textContent = 'doing stuff'; // other code here } window.addEventListener('DOMContentLoaded', init);

De esta manera, si también elimina el atributo runThisFunction defer disponible de inmediato, pero las otras partes de su código no se ejecutarán hasta que se cargue la página.

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