From d3f5e76440ab8b035f7d65ae8ac4a7273c885da1 Mon Sep 17 00:00:00 2001 From: Ewenak Date: Sun, 8 Jun 2025 15:58:21 +0200 Subject: [PATCH 1/3] Fix null element errors --- unscroll.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/unscroll.js b/unscroll.js index b9d1c07..9c6553d 100644 --- a/unscroll.js +++ b/unscroll.js @@ -3,7 +3,7 @@ var reels_element = null var adjustScrollPosition = () => { var imageElement = document.querySelector('img[src="/images/instagram/xig/web/illo-confirm-refresh-light.png"]'); - endread_element = imageElement.parentElement.parentElement; + endread_element = imageElement?.parentElement?.parentElement; if(!endread_element) { return; } @@ -16,9 +16,9 @@ var adjustScrollPosition = () => { } var remReels = () => { - reels_element = document.querySelector('a[href="/reels/"]').parentElement; - if(reels_element) { - reels_element.remove(); + reels_link = document.querySelector('a[href="/reels/"]'); + if(reels_link) { + reels_link.parentElement.remove(); } } From e61185641130c0d13840e485bc85745784b6c660 Mon Sep 17 00:00:00 2001 From: Ewenak Date: Sun, 8 Jun 2025 16:18:35 +0200 Subject: [PATCH 2/3] Match explore page posts more loosely and optimize removal --- unscroll.js | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/unscroll.js b/unscroll.js index 9c6553d..fe39ff4 100644 --- a/unscroll.js +++ b/unscroll.js @@ -23,13 +23,20 @@ var remReels = () => { } var remExplores = () => { - if (window.location.href === 'https://www.instagram.com/explore/') { + if (window.location.pathname === '/explore/') { + let postContainer = document.querySelector('main > :not(nav)'); + if (!!postContainer) { + postContainer.remove(); + } + + // Gardons l'ancien code pour le cas où var proposedPosts = document.querySelectorAll('a[href*="/p/"]'); - if(!proposedPosts) {return} - proposedPosts.forEach(function(link) { + if(!!proposedPosts) { + proposedPosts.forEach(function(link) { link.remove(); - }); -} + }); + } + } } var onPageUpdate = () => { From 2645e92c588f0a9ddd724b91bc7f5354c385741f Mon Sep 17 00:00:00 2001 From: Ewenak Date: Sun, 8 Jun 2025 18:05:05 +0200 Subject: [PATCH 3/3] Use MutationObserver instead of deprecated DOMNodeInserted --- unscroll.js | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/unscroll.js b/unscroll.js index fe39ff4..ab695de 100644 --- a/unscroll.js +++ b/unscroll.js @@ -39,15 +39,26 @@ var remExplores = () => { } } -var onPageUpdate = () => { +function onPageUpdate() { remReels(); remExplores(); } +const observer = new MutationObserver((mutationsList) => { + for (const mutation of mutationsList) { + if (mutation.type === 'childList') { + onPageUpdate(); + } + } +}); + +observer.observe(document.body, { + childList: true, + subtree: true +}); + // Gestionnaire d'événements pour ajuster la position lors du défilement document.addEventListener('scroll', adjustScrollPosition); -document.addEventListener('DOMNodeInserted', remReels); -document.addEventListener('DOMNodeInserted', remExplores); onPageUpdate(); console.log("Unscroll active")