Sim, basicamente o que você fez é certo, exceto que você esquece que o JavaScript é sincronizado em muitos casos, então você executa o código antes do seu DOM carregamento do , existem algumas maneiras de resolver isso:
1) Verifique se o DOM está totalmente carregado e faça o que quiser. Você pode ouvir DOMContentLoaded, por exemplo:
<script>
document.addEventListener("DOMContentLoaded", function(event) {
console.log("DOM fully loaded and parsed");
});
</script>
2) A maneira mais comum é adicionar a tag de script na parte inferior do seu document
(após a tag body):
<html>
<head>
</head>
<body>
</body>
<script src="/bundle.js"></script>
</html>
3) Utilização window.onload
, que é acionada quando a página inteira é carregada (img, etc)
window.addEventListener("load", function() {
console.log("Everything is loaded");
});
4) Using document.onload
, que é acionado quando o DOM está pronto:
document.addEventListener("load", function() {
console.log("DOM is ready");
});
Existem ainda mais opções para verificar se o DOM está pronto, mas a resposta curta é NÃO executar nenhum script antes de verificar se o DOM está pronto em todos os casos ...
O JavaScript está funcionando junto com os elementos DOM e, se não estiverem disponíveis, retornará nulo , poderá interromper o aplicativo inteiro ... portanto, verifique sempre se você está totalmente pronto para executar o JavaScript antes de executar ...