JavaScript must be enabled to play.
Browser lacks capabilities required to play.
Upgrade or switch to another browser.
Loading…
<<nobr>> <style> /* Verringert den Zeilenabstand und zwingt die Buttons auf volle Breite */ p, h1 { line-height: 1.3 !important; margin-bottom: 10px !important; } .link-button { display: block !important; /* Zwingt den Button, ein Block-Element zu sein */ width: 100% !important; /* Nimmt die volle verfügbare Breite des Containers ein */ box-sizing: border-box !important; /* Verhindert, dass Padding den Button über den Rand drückt */ line-height: 1.3 !important; margin-bottom: 6px !important; text-align: center !important; /* Zentriert den Text im breiten Button */ } </style> <h2><center>🍭 SUGARBYTES 🍭</center></h2> <h4><center>Fortsetzen</center></h4> <div id="fortsetzen-container"></div> <h4><center>Oder Spiel neu anfangen</center></h4> <div id="button-container"></div> <</nobr>> <<script>> setTimeout(function() { var buttonContainer = document.getElementById('button-container'); var fortsetzenContainer = document.getElementById('fortsetzen-container'); // ========================================================= // HILFSFUNKTION: Baut den grünen Button (initial und bei Klick) // ========================================================= function baueFortsetzenButton(spielDaten) { // Container zuerst leeren, falls schon ein Button existiert fortsetzenContainer.innerHTML = ''; if (!spielDaten) return; // Abbrechen, falls keine Daten da sind var fBtn = document.createElement('a'); fBtn.className = 'link-button'; fBtn.target = '_blank'; fBtn.style.backgroundColor = '#1e5f38'; fBtn.innerHTML = "▶ " + spielDaten.anzeigeName; fBtn.addEventListener('mouseenter', function() { fBtn.style.backgroundColor = '#154327'; }); fBtn.addEventListener('mouseleave', function() { fBtn.style.backgroundColor = '#1e5f38'; }); // Reiner HTML-Pfad ohne Parameter fBtn.href = spielDaten.engineHtml; if (window.location.protocol === 'file:') { fBtn.href = "test-" + spielDaten.ID + ".html"; } fortsetzenContainer.appendChild(fBtn); fortsetzenContainer.appendChild(document.createElement('hr')); } // --- 1. ZULETZT GESPIELT LADEN (Beim Start der Lobby) --- var geladenesSpielRaw = localStorage.getItem('menue_letztesSpiel'); if (geladenesSpielRaw) { try { var geladenesSpiel = JSON.parse(geladenesSpielRaw); // Ruft die Funktion auf, um den Button beim Start einmalig zu zeichnen baueFortsetzenButton(geladenesSpiel); } catch(e) { console.error("Fehler beim Parsen des letzten Spiels", e); } } // --- 2. DIE NORMALE LISTE LADEN --- if (setup.menueGeladen && setup.spieleListe.length > 0) { setup.spieleListe.forEach(function(spiel) { var btn = document.createElement('a'); btn.className = 'link-button'; btn.innerHTML = spiel.anzeigeName; btn.target = '_blank'; var parameter = "?datei=" + spiel.wortschatzJson; btn.href = spiel.engineHtml + parameter; // HIER IST DIE MAGIE: Beim Klick wird sofort geupdatet btn.addEventListener('click', function() { // 1. In den Speicher schreiben localStorage.setItem('menue_letztesSpiel', JSON.stringify(spiel)); // 2. Den grünen Button sofort visuell aktualisieren, ohne Reload! baueFortsetzenButton(spiel); }); buttonContainer.appendChild(btn); // Entwickler-Trick (HEAD-Check) fetch(spiel.engineHtml, { method: 'HEAD' }) .then(function(response) { if (!response.ok) { btn.href = "test-" + spiel.ID + ".html" + parameter; } }) .catch(function() { if (spiel.ID) { btn.href = "test-" + spiel.ID + ".html" + parameter; } }); }); } else { buttonContainer.innerHTML = "<p style='color:red;'>Keine Spiele geladen. Prüfe die sugarcubes.json!</p>"; } }, 50); <</script>>