Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

150
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda