From 67eb515c35ccae54b59e24f65ab085d777588104 Mon Sep 17 00:00:00 2001 From: rene Date: Sun, 12 Apr 2026 18:03:56 +0200 Subject: [PATCH] Karte: CSS-Load abwarten + invalidateSize (schwarze Karte fix) Co-Authored-By: Claude Sonnet 4.6 --- backend/static/js/pages/poison.js | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/backend/static/js/pages/poison.js b/backend/static/js/pages/poison.js index 40c5c46..dbb97df 100644 --- a/backend/static/js/pages/poison.js +++ b/backend/static/js/pages/poison.js @@ -84,6 +84,8 @@ window.Page_poison = (() => { await _loadLeaflet(); _initMap(); + // Leaflet muss nach CSS-Load die Container-Größe neu berechnen + setTimeout(() => _map?.invalidateSize(), 100); await _locateAndLoad(); } @@ -93,13 +95,18 @@ window.Page_poison = (() => { async function _loadLeaflet() { if (_leafletLoaded || window.L) { _leafletLoaded = true; return; } - if (!document.querySelector('link[href*="leaflet"]')) { - const link = document.createElement('link'); - link.rel = 'stylesheet'; - link.href = 'https://unpkg.com/leaflet@1.9.4/dist/leaflet.css'; + // CSS laden und auf onload warten — sonst kennt Leaflet die Container-Größe nicht + await new Promise(resolve => { + if (document.querySelector('link[href*="leaflet"]')) { resolve(); return; } + const link = document.createElement('link'); + link.rel = 'stylesheet'; + link.href = 'https://unpkg.com/leaflet@1.9.4/dist/leaflet.css'; + link.onload = resolve; + link.onerror = resolve; // weiter auch wenn CDN nicht erreichbar document.head.appendChild(link); - } + }); + // JS laden await new Promise((resolve, reject) => { if (document.querySelector('script[src*="leaflet"]')) { resolve(); return; } const s = document.createElement('script');