Estou nos estágios iniciais da construção de um site. Gostaria de ter uma barra de navegação consistente em todas as páginas do meu site, então meu plano é criar uma barra de navegação em seu próprio arquivo HTML e então carregá-la em um div feito para ela em cada página.
Neste estágio, porém, não consigo nem fazer meu JavaScript rodar. Inicialmente, tentei apenas ter o script por conta própria. Com isso, nem o innerHTML modificado nem o pop-up para teste aparecem.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
<div id="nav-bar">The navigation bar has failed to load.</div>
<script>
document.getElementByID("nav-bar").innerHTML="test";
alert("Hello")
</script>
<h1>Welcome</h1>
<p>This site is under construction.</p>
</body>
</html>
Também tentei usar um evento onload, mas nada aconteceu.
function load-nav-bar() {
document.getElementByID("nav-bar").innerHTML = "test";
console.log("Hello")
}
<div id="nav-bar" onload="load-nav-bar()">The navigation bar has failed to load.</div>
<h1>Welcome</h1>
<p>This site is under construction.</p>
Imagino que o problema seja algo com a forma como estou usando JavaScript, mas já faz quase uma década desde a última vez que o usei e se há algo que estou fazendo errado, infelizmente não me lembro e não consegui descobrir. Alguém pode ajudar a explicar por que o JavaScript não roda?
Não há
onload
evento paradiv
sUse a
window.onload
função: Como chamo uma função JavaScript no carregamento da página?Não é
getElementById
, nãogetElementByID
Não use
-
s em nomes de funções:Quais caracteres são válidos para nomes de variáveis JavaScript?
Eu recomendaria usar
<template>
blocos em html. Este é um guia que achei útil.Inclua isto no seu arquivo javascript:
E então você pode adicionar o html acima a todas as suas páginas.
O motivo é porque você usou document.getElementByID O "D" não deve ser capitalizado. Aqui está o código corrigido: