JavaScript DOMContentLoaded

Resumo : neste tutorial, você aprenderá sobre o DOMContentLoadedevento 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 DOMContentLoadedevento ao colocar o JavaScript no final headda 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 bodyJavaScript 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 btnnão existe.

Para corrigir isso, você coloca o código dentro de um DOMContentLoadedmanipulador 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 DOMContentLoadedevento, 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 DOMContentLoadedevento é acionado quando o conteúdo do DOM é carregado, sem esperar que as imagens e folhas de estilo terminem de carregar.
  • Manipule DOMContentLoadedo evento apenas se você colocar o código JavaScript no head, que faz referência a elementos na seção body.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *