O que é HTML/JS Onload e como funciona?
O conceito de onload HTML/JS pode ajudá-lo a controlar o comportamento da página da web depois de carregada.
Carregar uma página da web inclui esperar que o conteúdo da página, imagens e outros recursos sejam completamente carregados.
Algumas páginas da Web garantem que determinadas funcionalidades não ocorram até que tudo termine de carregar. Um exemplo inclui a recuperação de dados de um banco de dados somente após o carregamento da página.
Existem diferentes maneiras de verificar se uma página da web está totalmente carregada. Você pode ouvir eventos usando manipuladores de eventos JavaScript, usar o evento JavaScript window.onload ou o atributo HTML onload.
Como usar onLoad com o elemento HTML Body
Você pode usar eventos JavaScript para verificar se o corpo da página da web foi carregado. Você precisará de um arquivo HTML com algum conteúdo da página e um arquivo JavaScript para executar o código.
O código usado neste projeto está disponível em um repositório GitHub e é gratuito para uso sob a licença do MIT.
Em um novo arquivo HTML chamado index.html, adicione o seguinte código HTML básico:
<!DOCTYPE html> <html> <head> <title>Example using onload</title> </head> <body> <h1>Example using onload()</h1> <p>This example demonstrates how to use the onload() event in JavaScript.</p> </body> </html>
Crie um novo arquivo na mesma pasta chamado script.js. Vincule este arquivo à sua página HTML usando a tag script. Você pode adicionar a tag script na parte inferior da tag body:
<body> <!-- Your content --> <script src="script.js"></script> </body>
Dentro do conteúdo da tag de corpo HTML, adicione uma tag de parágrafo vazia.
<p id="output"></p>
Dentro do arquivo JavaScript, adicione a função de evento window.onload. Isso será executado quando a página for carregada:
window.onload = function() { // code to run when page is loaded };
Dentro da função, preencha o conteúdo da tag de parágrafo vazia. Isso mudará a tag do parágrafo para exibir uma mensagem somente quando a página for carregada:
document.getElementById("output").innerHTML = "Page loaded!";
Como alternativa, você também pode usar um ouvinte de evento para escutar o evento DOMContentLoaded. DOMContentLoaded é acionado antes de window.onload. Ele é acionado assim que o documento HTML está pronto, em vez de aguardar o carregamento de todos os recursos externos.
document.addEventListener('DOMContentLoaded', function() { document.getElementById("output").innerHTML = "Page loaded!"; });
Abra o arquivo index.html em um navegador da web para visualizar a mensagem quando a página terminar de carregar:
Em vez de usar eventos JavaScript para verificar se uma página foi carregada, você também pode usar o atributo HTML onload para obter o mesmo resultado. Adicione o atributo onload à tag body no seu arquivo HTML:
<body onload="init()">
-
Crie a função init() dentro do arquivo JavaScript. Não é recomendado usar o atributo onload HTML e o evento onload JavaScript ao mesmo tempo. Fazer isso pode levar a comportamentos inesperados ou conflitos entre as duas funções.
function init() { document.getElementById("output").innerHTML = "Page loaded!"; }
Recomendamos usar os ouvintes de eventos JavaScript e o método window.onload em vez do atributo HTML onload porque manter o comportamento e o conteúdo da página separados é uma boa prática. Além disso, os ouvintes de eventos JavaScript fornecem mais compatibilidade e flexibilidade em relação aos outros dois métodos.
Como usar onLoad com o elemento HTML de imagem
Você também pode usar o evento onload para executar código quando outros elementos forem carregados na página. Um exemplo disso é o elemento imagem.
- Dentro da mesma pasta do arquivo index.html, adicione qualquer imagem.
Dentro do arquivo HTML, adicione uma tag de imagem e vincule o atributo src ao nome da imagem salva na pasta.
<img id="myImage" src="Pidgeymon.png" width="300">
Adicione outra tag de parágrafo vazia para exibir uma mensagem quando a imagem for carregada:
<p id="imageLoadedMessage"></p>
Dentro do arquivo JavaScript, adicione um evento onload na imagem. Use o ID exclusivo myImage para determinar a qual elemento de imagem adicionar o evento onload:
var myImage = document.getElementById("myImage"); myImage.onload = function() { };
Dentro do evento onload, altere o HTML interno para adicionar a mensagem Imagem carregada:
document.getElementById("imageLoadedMessage").innerHTML = "Image loaded!";
Em vez de usar myImage.onload, você também pode usar um ouvinte de evento para ouvir o evento load JavaScript:
myImage.addEventListener('load', function() { document.getElementById("imageLoadedMessage").innerHTML = "Image loaded!"; });
Abra index.html em um navegador da web para visualizar a imagem e a mensagem:
-
Para o mesmo resultado, você também pode usar o atributo HTML onload. Semelhante à tag body, adicione um atributo onload à tag img:
<img id="myImage" src="Pidgeymon.png" width="300" onload="imageLoaded()">
Adicione a função no arquivo JavaScript, para executar o código quando a imagem for carregada:
function imageLoaded() { document.getElementById("imageLoadedMessage").innerHTML = "Image loaded!"; }
Como usar onLoad ao carregar o JavaScript
Você pode usar o atributo HTML onload para verificar se o navegador terminou de carregar o arquivo JavaScript. Não há evento onload de JavaScript equivalente para a tag de script.
Adicione o atributo onload à tag de script no seu arquivo HTML.
<script src="script.js" onload="LoadedJs()"></script>
Adicione a função ao seu arquivo JavaScript. Imprima uma mensagem fazendo login no console do navegador:
function LoadedJs() { console.log("JS Loaded by the browser!"); }
Abra o arquivo index.html no navegador. Você pode usar o Chrome DevTools para visualizar qualquer saída de mensagem no console.
Carregando páginas da Web no navegador
Agora você pode usar funções e eventos para executar determinado código quando o carregamento de uma página da web for concluído. O carregamento de páginas é um grande fator na criação de uma experiência de usuário tranquila e contínua.
Você pode aprender mais sobre como integrar designs de páginas de carregamento mais interessantes ao seu site.