diff --git a/netzradar-linker.user.js b/netzradar-linker.user.js index 04cba5d98ac92c48480c3e1116e229f8d768ef0b..9c16019e93852fe73218a520fe9f7e2af8d56ae1 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); })();