lorem_ipsum/js/navigation.js
2026-04-01 16:30:23 +02:00

49 lines
2.5 KiB
JavaScript

document.addEventListener("DOMContentLoaded", () => {
function setActiveMenu(id) {
//Alle Sidebar-Links zurücksetzen
document.querySelectorAll("#sidebar .nav-link").forEach(link => link.classList.remove("active"));
// Alle Navbar-Links zurücksetzen
document.querySelectorAll(".navbar-nav .nav-link").forEach(link => link.classList.remove("active"));
//Aktiven Link setzen
const activeLink = document.getElementById(id);
if (activeLink) activeLink.classList.add("active");
}
window.loadPage = function loadPage(page, menuId) {
fetch("pages/" + page + ".html")
.then(response => {
if (!response.ok) {
throw new Error("HTTP " + response.status);
}
return response.text();
})
.then(data => {
document.getElementById("main-content").innerHTML = data;
setActiveMenu(menuId);
if (page === "login" && typeof window.initLoginPage === "function") {
window.initLoginPage();
}
})
.catch(error => {
console.error("Fehler beim Laden von " + page + ":", error);
document.getElementById("main-content").innerHTML = "<div class='alert alert-danger'>Fehler beim Laden der Seite: " + error.message + "</div>";
});
};
const navHome = document.getElementById("nav-home");
const navPlay = document.getElementById("nav-play");
const navMyScores = document.getElementById("nav-my-scores");
const navLeaderboard = document.getElementById("nav-leaderboard");
const navbarLogin = document.getElementById("navbar-login");
const navbarMessages = document.getElementById("navbar-messages");
if (navHome) navHome.onclick = (e) => { e.preventDefault(); loadPage("home", "nav-home"); };
if (navPlay) navPlay.onclick = (e) => { e.preventDefault(); loadPage("play", "nav-play"); };
if (navMyScores) navMyScores.onclick = (e) => { e.preventDefault(); loadPage("scores", "nav-my-scores"); };
if (navLeaderboard) navLeaderboard.onclick = (e) => { e.preventDefault(); loadPage("leaderboard", "nav-leaderboard"); };
if (navbarLogin) navbarLogin.onclick = (e) => { e.preventDefault(); loadPage("login", "navbar-login"); };
if (navbarMessages) navbarMessages.onclick = (e) => { e.preventDefault(); loadPage("messages", "navbar-messages"); };
//Startseite laden
loadPage("home", "nav-home");
});