Problemas jquery (innerhml load html)

Computação Geral Jquery Geral

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.

Foto de Fernando B.
Fernando perguntou há 4 anos

Sabe a resposta?

Ganhe 10 pts por resposta de qualidade
Responder dúvida
1 resposta
0
votos
Nenhum usuário votou nessa resposta como útil.
Professor Lucas M.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 4 anos

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.

Envie uma dúvida gratuitamente

Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.

Professores particulares de Computação

+ Ver todos
Encontre professor particular para te ajudar nos estudos
R$ 70 / h
Lucas M.
Maceió / AL
Lucas M.
4,4 (36 avaliações)
Horas de aulas particulares ministradas 373 horas de aula
Tarefas resolvidas 2 tarefas resolvidas
Identidade verificada
  • CPF verificado
  • E-mail verificado
Git Computação - Word Computação - Power Point
Especialização: Segurança e defesa cibernética (Unninter)
Aulas presenciais e online de computação e programação com foco em projetos reais.
R$ 60 / h
César D.
Mogi Guaçu / SP
César D.
4,9 (806 avaliações)
Horas de aulas particulares ministradas 87 horas de aula
Tarefas resolvidas 986 tarefas resolvidas
Identidade verificada
  • CPF verificado
  • E-mail verificado
1ª hora grátis
Computação e Informática para o Ensino Médio Computação - Excel Computação - Java
Graduação: Matemática Aplicada e Computacional (Universidade Estadual de Campinas (UNICAMP))
Faça aulas de matemática, computação e programação em c, c++, java e python.