diff --git a/unscroll.js b/unscroll.js index b9d1c07..ab695de 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,31 +16,49 @@ 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(); } } 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 = () => { +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")