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