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 });
})();