您需要先安装一个扩展,例如 篡改猴、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();
- })();