diff --git a/player/agent/internal/playerserver/server.go b/player/agent/internal/playerserver/server.go index e20ba1c..cae5a51 100644 --- a/player/agent/internal/playerserver/server.go +++ b/player/agent/internal/playerserver/server.go @@ -464,7 +464,19 @@ const playerHTML = ` if (frame.src !== item.src) { frame.src = item.src; } frame.style.display = 'block'; requestAnimationFrame(function() { - requestAnimationFrame(function() { frame.style.opacity = '1'; }); + requestAnimationFrame(function() { + frame.style.opacity = '1'; + // Nach der Opacity-Transition (500ms) einen Resize-Event feuern, + // damit JS-basierte Layouts (z.B. WebUntis) neu berechnen. + // Der iframe ist jetzt sichtbar (offsetWidth > 0). + setTimeout(function() { + try { + frame.contentWindow.dispatchEvent(new Event('resize')); + } catch (e) { + // CORS-Fehler bei cross-origin iframes ignorieren. + } + }, TRANSITION_MS); + }); }); // Fehler-Fallback wenn iframe-Laden fehlschlägt (z.B. X-Frame-Options).