diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6f66c74 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.zip \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..857ffa4 --- /dev/null +++ b/README.md @@ -0,0 +1,4 @@ +# Unscroll + +A simple Firefox extension to remove scrolling on the homepage of Instagram +and other distracting parts of Instagram. \ No newline at end of file diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..8e5a6fe --- /dev/null +++ b/build.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +zip -r -FS unscroll.zip * --exclude '*.git*' diff --git a/build.txt b/build.txt deleted file mode 100644 index 9dc7a66..0000000 --- a/build.txt +++ /dev/null @@ -1 +0,0 @@ -zip -r -FS ../unscroll.zip * --exclude '*.git*' diff --git a/unscroll.js b/unscroll.js index b9d1c07..da1ca55 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 ? imageElement.parentElement.parentElement : null; if(!endread_element) { return; } @@ -16,7 +16,7 @@ var adjustScrollPosition = () => { } var remReels = () => { - reels_element = document.querySelector('a[href="/reels/"]').parentElement; + reels_element = document.querySelector('a[href="/reels/"]')?.parentElement; if(reels_element) { reels_element.remove(); } @@ -37,10 +37,19 @@ var onPageUpdate = () => { remExplores(); } -// Gestionnaire d'événements pour ajuster la position lors du défilement document.addEventListener('scroll', adjustScrollPosition); -document.addEventListener('DOMNodeInserted', remReels); -document.addEventListener('DOMNodeInserted', remExplores); + +const observer = new MutationObserver((mutationsList, observer) => { + for (const mutation of mutationsList) { + if (mutation.type === 'childList') { + remReels(); + remExplores(); + } + } +}); + +observer.observe(document.body, { childList: true, subtree: true }); + onPageUpdate(); console.log("Unscroll active")