Supongamos que hay un archivo JS:
// a.js function a(){ console.log('hello from a.js') } y un archivo HTML donde quiero precargar y diferir el archivo a.js JS de modo que pueda llamar a las funciones en a.js desde dentro de b.html :
<!-- b.html --> <html> <head> <link re='preload' as='script' href='a.js'> </head> <body> </body> <script defer src='a.js'> <!-- calling a() below doesn't work --> <script src='a.js'> <!-- calling a() below does work --> <script> a() // doesn't work with `defer`, works without `defer` </script> </html¿Cómo puedo lograr eso?
Una forma es esperar a que se cargue la página:
<script defer src='a.js'> <script> window.addEventListener('load', function(){ a() }) // Works </script>pero esto es bastante poco elegante. ¿Hay una mejor manera?