Better MobileRead.com

MobileRead with light/dark theme selection

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey, Greasemonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да инсталирате разширение, като например Tampermonkey .

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Userscripts.

За да инсталирате скрипта, трябва да инсталирате разширение като Tampermonkey.

За да инсталирате този скрипт, трябва да имате инсталиран скриптов мениджър.

(Вече имам скриптов мениджър, искам да го инсталирам!)

Advertisement:

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

(Вече имам инсталиран мениджър на стиловете, искам да го инсталирам!)

Advertisement:

// ==UserScript==
// @name           Better MobileRead.com
// @name:pl        Ulepszony MobileRead.com
// @description    MobileRead with light/dark theme selection
// @description:pl MobileRead z wyborem jasnego/ciemnego motywu.
// @author         juliazero
// @license        GPL-3.0-only
// @version        0.9.3
// @match          https://www.mobileread.com/*
// @namespace      mobileread.com
// @resource       IMPORTED_CSS https://userstyles.world/api/style/28831.user.css?v=0.9.3
// @grant          GM_getResourceText
// @grant          GM_addStyle
// @run-at         document-body
// ==/UserScript==
 
(function() {
    'use strict';
 
    // Load and inject CSS as a <style> element
    let css = GM_getResourceText("IMPORTED_CSS");
    // Remove the @-moz-document wrapper, but keep the inner contents
    css = css.replace(/@-moz-document\s+domain\([^)]+\)\s*\{([\s\S]*?)\}\s*$/, '$1');
    GM_addStyle(css);
 
    // Add viewport meta tag for better mobile support
    const metaElement = document.createElement('meta');
    metaElement.name = 'viewport';
    metaElement.content = 'width=device-width, initial-scale=1';
    document.head.appendChild(metaElement);
 
    // Remove " First" and "Last " from pagination links
    function cleanPaginationText() {
        document.querySelectorAll('a.smallfont').forEach(a => {
            for (let node of a.childNodes) {
                if (node.nodeType === Node.TEXT_NODE) {
                    node.textContent = node.textContent.replace(" First", "").replace("Last ", "");
                }
            }
        });
    }
    cleanPaginationText();
    const observer = new MutationObserver(cleanPaginationText);
    observer.observe(document.body, { childList: true, subtree: true });
})();