Комментарий #12930340

osmy2026
ещё один скрипт, который восстанавливает отображение фонов CSS выгруженных на внешние сайты посредством замены ссылок (причём там даже похер - camo это или не camo ссылка)

// ==UserScript==
// @name         Замена background-url в CSS (исправленная версия)
// @match        https://shiki.one/*
// @match        http://shiki.one/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // Функция: находит url(...?url=...) и заменяет на декодированный URL
    function decodeBackgroundUrl(cssText) {
        return cssText.replace(
            /url\s*\(\s*['"]?([^'")]*\?url=([^)'"]+))['"]?\s*\)/g,
            (match, fullUrl, encodedPart) => {
                try {
                    const decoded = decodeURIComponent(encodedPart);
                    // Сохраняем кавычки, если они были
                    const quote = match.includes('"') ? '"' : match.includes("'") ? "'" : '';
                    return `url(${quote}${decoded}${quote})`;
                } catch (e) {
                    console.warn('Не удалось декодировать URL:', encodedPart, e);
                    return match; // Возвращаем исходный фрагмент при ошибке
                }
            }
        );
    }

    // Обрабатываем все <style>-блоки на странице
    document.querySelectorAll('style').forEach(styleEl => {
        const cssText = styleEl.textContent;
        const newCss = decodeBackgroundUrl(cssText);

        if (newCss !== cssText) {
            styleEl.textContent = newCss;
            console.log('CSS обновлён:', styleEl);
        }
    });

    // Дополнительно: проверяем, что фон применился
    setTimeout(() => {
        const bodyBg = window.getComputedStyle(document.body).backgroundImage;
        if (bodyBg && bodyBg.includes('url')) {
            console.log('Фон успешно применён:', bodyBg);
        } else {
            console.warn('Фон не отобразился. Проверьте:');
            console.log('- Корректность URL:', document.body.style.backgroundImage);
            console.log('- Наличие CORS-ограничений на изображение');
        }
    }, 1000);
})();
Ответы

Нет комментариев

назад
Твой комментарий
Вернуться к редактированию
Предпросмотр
Скрыть