From 88c742de0b02335b22cf2f981555a36d185ddca1 Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Mon, 18 May 2026 15:56:25 +0200 Subject: [PATCH] =?UTF-8?q?Verbessere=20die=20Handhabung=20von=20Skripten:?= =?UTF-8?q?=20F=C3=BCge=20Logik=20hinzu,=20um=20SCRIPT-Tags=20im=20Head=20?= =?UTF-8?q?auszuf=C3=BChren=20und=20nicht=20in=20den=20Platzhalter=20einzu?= =?UTF-8?q?f=C3=BCgen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/src/components/HeaderAdBanner.vue | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/client/src/components/HeaderAdBanner.vue b/client/src/components/HeaderAdBanner.vue index ea459a8..97243a2 100644 --- a/client/src/components/HeaderAdBanner.vue +++ b/client/src/components/HeaderAdBanner.vue @@ -192,13 +192,31 @@ async function renderPropeller() { const isAdNode = src.includes('nap5k') || (node.dataset && node.dataset.zone === propSlotId) || /nap5k|propel|propeller|inpage|push/i.test((node.className || '') + ' ' + (node.id || '')); if (isAdNode) { try { - // move iframe/ad node into placeholder + // If the detected node is a SCRIPT, execute it in head and do not append it to placeholder + if (node.tagName === 'SCRIPT') { + const src = node.getAttribute('src'); + if (src) { + const s2 = document.createElement('script'); + s2.src = src; + s2.async = true; + document.head.appendChild(s2); + } else if (node.textContent) { + const s2 = document.createElement('script'); + s2.textContent = node.textContent; + document.head.appendChild(s2); + } + node.parentNode && node.parentNode.removeChild(node); + continue; + } + + // move iframe/ad node into placeholder (prefer inline iframe if present) placeholder.innerHTML = ''; if (iframe && iframe.parentNode) { placeholder.appendChild(iframe); - } else { + } else if (node.tagName !== 'SCRIPT') { placeholder.appendChild(node); } + const moved = placeholder.firstElementChild; if (moved) { // Normalize size