您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Simple script to prevent scrolling beyond "You've completely caught up" element and hide suggested posts reliably.
// ==UserScript== // @name Stop Scrolling Instagram // @namespace http://tampermonkey.net/ // @version 1.3 // @description Simple script to prevent scrolling beyond "You've completely caught up" element and hide suggested posts reliably. // @author Ulysses // @match https://www.instagram.com/* // @icon https://www.google.com/s2/favicons?sz=64&domain=instagram.com // @grant none // @license MIT // ==/UserScript== (function () { 'use strict'; function hideElement(selector) { const elements = document.querySelectorAll(selector); elements.forEach(el => el.style.display = 'none'); } function hideSpecificElements() { // Mobile selectors hideElement("div:nth-of-type(3) > .x1qrby5j.x7ja8zs ..."); // Keep your original selectors hideElement("div.x1nhvcw1.x1oa3qoh.x1qjc9v5..."); hideElement(".xl56j7k.x1oa3qoh.x6s0dn4..."); // Desktop selectors hideElement("div:nth-of-type(4) > .x1qrby5j.x7ja8zs ..."); hideElement("div:nth-of-type(4) > .x1qrby5j.x7ja8zs ... > .x1n2onr6"); } // --- Updated method: Find "You've completely caught up" by text --- function findCaughtUpElement() { const textMatch = "You've completely caught up"; const spans = document.querySelectorAll('span'); for (const span of spans) { if (span.textContent.trim().includes(textMatch)) { return span.closest('div.xvbhtw8') || span.parentElement; } } return null; } function disableScroll(target) { target.style.marginBottom = '900px'; window.onscroll = function () { const rect = target.getBoundingClientRect(); if (rect.bottom < window.innerHeight) { const scrollTop = window.scrollY; const limit = rect.bottom + scrollTop - window.innerHeight; window.scrollTo(0, limit); } }; } function enableScroll() { window.onscroll = function () {}; } function stopAtCaughtUp() { const element = findCaughtUpElement(); if (element) { disableScroll(element); } else { enableScroll(); } } // Observe DOM changes for dynamic loading const observer = new MutationObserver(() => { stopAtCaughtUp(); hideSpecificElements(); }); observer.observe(document.body, { childList: true, subtree: true }); // Initial run stopAtCaughtUp(); hideSpecificElements(); })();