// Verbesserte Popup-Funktionen für externe Anwendungen // Diese Datei kann in externe Anwendungen eingebunden werden var popupWin = null; function forcePostToPopup(url, params) { console.log("forcePostToPopup aufgerufen mit URL:", url); console.log("Parameter:", params); // Popup erstellen oder wiederverwenden var needNewPopup = true; if (popupWin) { try { // Try to access the closed property - this might fail due to cross-origin restrictions needNewPopup = popupWin.closed; console.log("Popup Status - geschlossen:", needNewPopup); } catch (e) { console.log("Cross-origin access to popup window, assuming it's still open:", e); needNewPopup = false; } } if (needNewPopup) { console.log("Creating new popup window"); // WICHTIG: Mit about:blank starten für bessere Kompatibilität popupWin = window.open("about:blank", "vglPopup", "width=1920,height=1000,scrollbars=yes,resizable=yes"); if (!popupWin) { alert("Popup konnte nicht geöffnet werden. Bitte überprüfen Sie Ihre Popup-Blocker-Einstellungen."); return; } // Minimal-HTML schreiben, damit das Popup einen korrekten Document-Context hat try { popupWin.document.open(); popupWin.document.write(` Lade DIWO Vergleich...

DIWO Vergleich wird geladen...

Bitte warten Sie, die Vergleichsdaten werden übertragen.

`); popupWin.document.close(); } catch (e) { console.log("Konnte nicht in Popup schreiben:", e); } } else { console.log("Reusing existing popup window"); } // Formular bauen - WICHTIG: Target muss mit Popup-Name übereinstimmen! var form = document.createElement("form"); form.id = "vglPostForm"; form.method = "post"; form.action = url; form.target = "vglPopup"; // Muss mit dem Namen des Popups übereinstimmen! form.style.display = "none"; // Formular unsichtbar machen // Parameter als Hidden-Fields hinzufügen for (var key in params) { if (params.hasOwnProperty(key)) { var input = document.createElement("input"); input.type = "hidden"; input.name = key; input.value = params[key] == null ? "" : params[key]; form.appendChild(input); console.log("Parameter hinzugefügt - " + key + ": " + (params[key] == null ? "(leer)" : params[key])); } } // Formular temporär zum DOM hinzufügen und absenden document.body.appendChild(form); console.log("📤 Formular wird abgesendet..."); form.submit(); // Formular wieder entfernen document.body.removeChild(form); // Fokus setzen und Popup in den Vordergrund bringen try { popupWin.focus(); // Zusätzlicher Versuch nach kurzer Verzögerung setTimeout(function() { try { popupWin.focus(); } catch (e) { console.log("Konnte Popup nicht fokussieren (verzögert):", e); } }, 500); } catch (e) { console.log("Konnte Popup nicht fokussieren:", e); } console.log("Popup-Übertragung abgeschlossen"); }