☰

World Art Uncensor

Блокує примусовий редирект на головну для прихованих сторінок World Art

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴、Greasemonkey 油猴子 或 Violentmonkey 暴力猴,才能安装此脚本。

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

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴 或 Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴 或 Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         World Art Uncensor
// @namespace    http://tampermonkey.net
// @version      1.1
// @description  Блокує примусовий редирект на головну для прихованих сторінок World Art
// @author       You
// @include      http://www.world-art.ru*
// @include      https://www.world-art.ru*
// @include      http://world-art.ru*
// @include      https://world-art.ru*
// @run-at       document-start
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // Блокуємо спроби сайту змінити локацію через JS
    if (window.location.search.includes('id=')) {
        const originalReplace = window.location.replace;
        window.location.replace = function(url) {
            if (url.includes('/animation/') && !url.includes('id=')) {
                console.log('[World Art Uncensor] Заблоковано window.location.replace на:', url);
                return;
            }
            originalReplace.apply(this, arguments);
        };

        // Захист від зміни href
        let currentHref = window.location.href;
        setInterval(() => {
            if (window.location.pathname === '/animation/' || window.location.pathname === '/animation/index.php') {
                window.history.pushState(null, '', currentHref);
                window.stop();
            }
        }, 10);
    }
})();