From c63499dc66266b68448838f29eacc8d9d54a2416 Mon Sep 17 00:00:00 2001
From: Jan Seipel <jan.seipel@swr.de>
Date: Fri, 20 Jun 2025 13:09:22 +0000
Subject: [PATCH] =?UTF-8?q?Edit=20netzradar-linker.user.js=20-=20Mutation?=
 =?UTF-8?q?=20Observer=20f=C3=BCgt=20den=20Button=20wieder=20ein,=20wenn?=
 =?UTF-8?q?=20er=20durch=20dynamisch=20nachgeladenen=20Inhalte=20gel=C3=B6?=
 =?UTF-8?q?scht=20wurde?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 netzradar-linker.user.js | 24 ++++++++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)

diff --git a/netzradar-linker.user.js b/netzradar-linker.user.js
index 04cba5d..9c16019 100644
--- a/netzradar-linker.user.js
+++ b/netzradar-linker.user.js
@@ -2,7 +2,7 @@
 // @name            netzradar-linker
 // @source    		  https://gitlab.ard.de/ida/netzradar-linker
 // @description     extrahiert Metadaten (Headline, Hostnamen, URL) des gegenwärtigen Dokuments, generiert Kurz-URL, und kopiert Metadaten und Kurz-URL in die Zwischenablage.
-// @version  		    5
+// @version  		    6
 // @grant           GM_setClipboard
 // @grant           GM.xmlHttpRequest
 // @match           *://*/*
@@ -186,6 +186,26 @@
     button.style.backgroundColor = STATUS_START_COLOR;
   };
 
+  /**
+   * MutationObversver soll Löschen des Buttons durch dynamisch
+   * nachgeladene Inhalte verhindern
+   *  */ 
+ function ensureButtonExists(document, handleClick) {
+     let button = document.getElementById("myshortenLink");
+     if (!button) {
+         button = addButton(document, handleClick);
+     }
+     return button;
+ }
+
+  // Observer, der auf Veränderungen im Body achtet
+    const observer = new MutationObserver(() => {
+        ensureButtonExists(document, handleClick);
+    });
+    observer.observe(document.body, { childList: true, subtree: true });
+
+  /*
+
   /*
 
   =====================
@@ -253,5 +273,5 @@
   };
 
   // Button hinzufügen
-  addButton(document, handleClick);
+  ensureButtonExists(document, handleClick);
 })();
-- 
GitLab