Se isso funcionar, acho que ele pode só passar o 'defer' na tag script e assim ele só vai carregar após o html ser completamente carregado Ex: <script defer src="script.js"></script>
Respondendo a "Então, esse script ta sendo chamado antes de ex..." dentro da publicação erro no codigo !!!
1