Foto de Fernando B.
Fernando há 5 anos
Enviada pelo
Site

Problemas jquery (innerhml load html)

Pessoal, por favor, peço ajuda.

Estou desenvolvendo um projeto, porém como o menu superior e lateral são sempre iguais, resolvi separá-los em paginas distintas, para facilitar a mudança futura e também, para melhor organização e estou chamando com a função load dentro de uma página que no caso é system.html, segue exemplo:

System.html

...
<nav class="navbar navbar-expand navbar-light bg-white topbar mb-4 static-top shadow" id="topBar"></nav>
... 

<script src="js/esc-2.js"></script>
<script src="js/auth/auth-watcher.js"></script>

Dentro do js esc-2.js tenho a função load, que vai inserir código html dentro da system.html.

E dentro da auth-watcher.js, tenho o código do innerHTML segue:

esc-2.js
$('#topBar').load('template/topbar.html');

e dentro da auth-watcher.js este código:

var userName = document.getElementById("userName");
var avatar = document.getElementById("avatar");
firebase.auth().onAuthStateChanged(function(user) {
if (user != null) {
userName.innerHTML = profile.displayName;
avatar.src = profile.photoURL;
});
} else {
// User is signed out.
window.location.href = "index.html";
// ...
}
});

 

Para finalizar na página template da topbar, temos certos os nomes dos id´s.

topbar.html

<a class="nav-link dropdown-toggle" href="#" id="userDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span class="mr-2 d-none d-lg-inline text-gray-600 small" id="userName">Não Autenticado</span>
<img class="img-profile rounded-circle" src="#" id="avatar"></a>

Quando o código esta diretamente no system.html, funciona normalmente, porém ao utilizar a função load, o nome do usuário e foto não são renderizados no nav.

Deixei bem simples e somente o código necessário para que entendessem, porém não consigo fazer um innerHTML dentro de um HTML utilizando a função load.

Para informar, os códigos estão sendo carregados normalmente, o conteúco aparece, a única coisa que não funciona é o innerHTML dentro da página, o que antes era modificado automaticamente com o nome de usuário e a foto do avatar, agora não consegue ser modificado pelos dados da variável innerHTML.

Como posso fazer isto?

Obs.: Ja tentei utilizar o script "<script src="https://www.w3schools.com/lib/w3.js"></script>" sem sucesso também.

Computação Geral Jquery Geral
1 resposta
Professor Lucas M.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 5 anos
Contatar Lucas

Você vai precisar colocar o innerHtml depois da propriedade

document.get.elementById("userName").innerHTML= 

document.getElementById("navBar").innerHTML=

 

Pra que a imagem e o navbar apareçam no browser.

 

Se não for isso verifique se você tá colocando o caminho certo para os arquivos dentro do atributo src do seu javascript as vezes é isso também.

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta
Tutoria com IA
Converse com a Minerva IA e aprenda, tire dúvidas e resolva exercícios
Minerva IA
do Profes
Respostas na hora
100% no WhatsApp
Envie suas dúvidas pelo App. Baixe agora
Prefere professores para aulas particulares ou resolução de atividades?
Aulas particulares
Encontre um professor para combinar e agendar aulas particulares Buscar professor
Tarefas
Envie sua atividade, anexe os arquivos e receba ofertas dos professores Enviar tarefa