no auto scroll

Disable JavaScript-triggered scrolling like scrollIntoView

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

You will need to install an extension such as Tampermonkey to install this script.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         no auto scroll
// @description  Disable JavaScript-triggered scrolling like scrollIntoView
// @match        https://playground.allenai.org/*
// @match        https://grok.com/*
// @match        https://9to5mac.com/*
// @match        https://electrek.co/*
// @match        https://chat.mistral.ai/*
// @match        https://chat.z.ai/*
// @match        https://chat.falconllm.tii.ae/*
// @match        *://stepfun.ai/*
// @match        https://aistudio.google.com/*
// @match        https://chat.deepseek.com/*
// @match        *://claude.ai/*
// @match        https://chat.qwen.ai/*
// @run-at       document-start
// @version 0.0.1.20251118080234
// @namespace https://greasyfork.org/users/1435046
// ==/UserScript==

(function () {
    'use strict';

    // Override scroll-related functions to no-ops
    Element.prototype.scrollIntoView = function () { };
    Element.prototype.scrollIntoViewIfNeeded = function () { };
    Element.prototype.scrollTo = function () { };
    window.scrollTo = function () { };
    window.scrollBy = function () { };

    // Block scrollTop assignments (what falcon.tii uses)
    Object.defineProperty(HTMLElement.prototype, 'scrollTop', {
        set() { },
        get() { return 0; },
        configurable: false
    });
})();