Ejecutar los script con la página cargada
Problema:
Evitar que un script se ejecute antes que el navegador termine de cargar la página web.
Cuando un script se ejecuta y necesita acceder al DOM es necesario que la página se halla cargado totalmente.
Si el script accede a un elemento que aún no está en la ventana del navegador provocará un error.
Solución
La solución más simple es colocar los sripts al final de la página, justa antes de </body>
Si bien es cierto que todas las normas dicen que los scrpts deben colocarse en la sección head, lo más habitual es que los lnk a los archivos de script se encuentren al final de la página
Esto nos asegura que todos los elementos del documento están presentes cuando se carga el archivo de scripts y se ejecutan estos.
Hay más formas de asegurarse que los elementos de la eb están dispnibles pero este es el más sencillo.Ejemplo
El ejemplo casi no es necesario.
Se trata simplemente de colocar los scripts antes de </body>. En este caso se trata de cargar el archivo main.js
<body>
<div>elementos de la páigna wbe</div>
<script src="main.js">
</body>