Resumo : neste tutorial, você aprenderá sobre o DOMContentLoaded
evento JavaScript.
O DOMContentLoaded
é acionado quando o conteúdo do DOM é carregado, sem esperar que as imagens e folhas de estilo terminem de carregar.
Você precisa manipular o DOMContentLoaded
evento ao colocar o JavaScript no final head
da página, mas referenciando elementos no corpo, por exemplo:
<!DOCTYPE html>
<html>
<head>
<title>JS DOMContentLoaded Event</title>
<script>
let btn = document.getElementById('btn');
btn.addEventListener('click', (e) => {
// handle the click event
console.log('clicked');
});
</script>
</head>
<body>
<button id="btn">Click Me!</button>
</body>
</html>
Linguagem de código: HTML, XML ( xml )
Neste exemplo, referenciamos o botão no body
JavaScript no arquivo head
.
Como o DOM não foi carregado quando o mecanismo JavaScript analisa o JavaScript no head
, o botão com o id btn
não existe.
Para corrigir isso, você coloca o código dentro de um DOMContentLoaded
manipulador de eventos, assim:
<!DOCTYPE html>
<html>
<head>
<title>JS DOMContentLoaded Event</title>
<script>
document.addEventListener('DOMContentLoaded', () => {
let btn = document.getElementById('btn');
btn.addEventListener('click', () => {
// handle the click event
console.log('clicked');
});
});
</script>
</head>
<body>
<button id="btn">Click Me!</button>
</body>
</html>
Linguagem de código: HTML, XML ( xml )
Quando você coloca JavaScript no cabeçalho, isso causará gargalos e atrasos na renderização, por isso é melhor mover o script antes da </body>
tag. Neste caso, não é necessário colocar o código no DOMContentLoaded
evento, assim:
<!DOCTYPE html>
<html>
<head>
<title>JS DOMContentLoaded Event</title>
</head>
<body>
<button id="btn">Click Me!</button>
<script>
document.addEventListener('DOMContentLoaded', () => {
let btn = document.getElementById('btn');
btn.addEventListener('click', () => {
// handle the click event
console.log('clicked');
});
});
</script>
</body>
</html>
Linguagem de código: HTML, XML ( xml )
Resumo
- O
DOMContentLoaded
evento é acionado quando o conteúdo do DOM é carregado, sem esperar que as imagens e folhas de estilo terminem de carregar. - Manipule
DOMContentLoaded
o evento apenas se você colocar o código JavaScript nohead
, que faz referência a elementos na seção body.