From 0935143001f304e7c2f70c446a64935f79acb64b Mon Sep 17 00:00:00 2001 From: Maurice Date: Thu, 19 Mar 2026 14:53:38 +0100 Subject: [PATCH] Fix PDF preview: use srcdoc instead of blob URL to avoid X-Frame-Options --- client/src/components/PDF/TripPDF.jsx | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/client/src/components/PDF/TripPDF.jsx b/client/src/components/PDF/TripPDF.jsx index 000aded..3248590 100644 --- a/client/src/components/PDF/TripPDF.jsx +++ b/client/src/components/PDF/TripPDF.jsx @@ -357,14 +357,10 @@ ${daysHtml} ` // Open print window - const blob = new Blob([html], { type: 'text/html' }) - const url = URL.createObjectURL(blob) - - // Modal in die App einfügen const overlay = document.createElement('div') overlay.id = 'pdf-preview-overlay' overlay.style.cssText = 'position:fixed;inset:0;background:rgba(0,0,0,0.7);z-index:9999;display:flex;align-items:center;justify-content:center;padding:8px;' - overlay.onclick = (e) => { if (e.target === overlay) { overlay.remove(); URL.revokeObjectURL(url) } } + overlay.onclick = (e) => { if (e.target === overlay) overlay.remove() } const card = document.createElement('div') card.style.cssText = 'width:100%;max-width:1000px;height:95vh;background:var(--bg-card);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,0.3);' @@ -383,13 +379,13 @@ ${daysHtml} const iframe = document.createElement('iframe') iframe.style.cssText = 'flex:1;width:100%;border:none;' - iframe.src = url + iframe.srcdoc = html card.appendChild(header) card.appendChild(iframe) overlay.appendChild(card) document.body.appendChild(overlay) - header.querySelector('#pdf-close-btn').onclick = () => { overlay.remove(); URL.revokeObjectURL(url) } + header.querySelector('#pdf-close-btn').onclick = () => overlay.remove() header.querySelector('#pdf-print-btn').onclick = () => { iframe.contentWindow?.print() } }