稍微放大电脑网站的字体

稍微放大电脑网站的字体,脚本菜单可以控制网站启用与禁用,并设置单独网站的字体和行间距倍数。

目前为 2023-03-08 提交的版本。查看 最新版本

// ==UserScript==
// @name         稍微放大电脑网站的字体
// @author       ChatGPT定制
// @version      4
// @description  稍微放大电脑网站的字体,脚本菜单可以控制网站启用与禁用,并设置单独网站的字体和行间距倍数。
// @match        *://*/*
// @grant        GM_registerMenuCommand
// @grant        GM_setValue
// @grant        GM_getValue
// @run-at      document-end
// @namespace https://gf.qytechs.cn/users/452911
// ==/UserScript==

(function () {
  "use strict";

  var storageKey = window.location.href.replace(/\/|\./g, "_");
  var isEnabled = GM_getValue(storageKey + "_enabled", true);
  var fontMultiplier = GM_getValue(
    storageKey + "_font_multiplier",
    1.04
  );
  var lineHeightMultiplier = GM_getValue(
    storageKey + "_line_height_multiplier",
    1.08
  );

  function enlargeFontSize() {
    const rootFontSize = parseFloat(
      getComputedStyle(document.documentElement).fontSize
    );
    const newRootFontSize = rootFontSize * fontMultiplier;
    document.documentElement.style.fontSize = `${newRootFontSize}px`;
    const rootLineHeight = parseFloat(
      getComputedStyle(document.documentElement).lineHeight
    );
    const newRootLineHeight = rootLineHeight * lineHeightMultiplier;
    document.documentElement.style.lineHeight = `${newRootLineHeight}px`;
    const elementsToScale = document.querySelectorAll("*");
    elementsToScale.forEach((element) => {
      const fontSize = parseFloat(getComputedStyle(element).fontSize);
      element.style.fontSize = `${(fontSize / rootFontSize) * newRootFontSize}px`;
      const lineHeight = parseFloat(getComputedStyle(element).lineHeight);
      element.style.lineHeight = `${
        (lineHeight / rootLineHeight) * newRootLineHeight
      }px`;
    });
  }

  function checkFontSize() {
    const width = window.innerWidth;
    if (width > 700) {
      enlargeFontSize();
    }
  }

  if (isEnabled) {
    window.addEventListener("resize", checkFontSize);
    checkFontSize();
  }

  GM_registerMenuCommand(isEnabled ? "禁用字体放大" : "启用字体放大", function () {
    isEnabled = !isEnabled;
    GM_setValue(storageKey + "_enabled", isEnabled);
    if (isEnabled) {
      window.addEventListener("resize", checkFontSize);
      checkFontSize();
    } else {
      document.documentElement.style.fontSize = "";
      document.documentElement.style.lineHeight = "";
      const elementsToReset = document.querySelectorAll("*");
      elementsToReset.forEach((element) => {
        element.style.fontSize = "";
        element.style.lineHeight = "";
      });
      window.removeEventListener("resize", checkFontSize);
    }
  });

  GM_registerMenuCommand("调整字体大小", function () {
    var newFontMultiplier = prompt(
      "请输入字体大小倍数",
      fontMultiplier.toString()
    );
    if (newFontMultiplier !== null) {
      fontMultiplier = parseFloat(newFontMultiplier);
      GM_setValue(storageKey + "_font_multiplier", fontMultiplier);
      checkFontSize();
    }
  });

  GM_registerMenuCommand("调整行间距", function () {
    var newLineHeightMultiplier = prompt(
      "请输入行间距倍数",
      lineHeightMultiplier.toString()
    );
    if (newLineHeightMultiplier !== null) {
      lineHeightMultiplier = parseFloat(newLineHeightMultiplier);
      GM_setValue(
        storageKey + "_line_height_multiplier",
        lineHeightMultiplier
      );
      checkFontSize();
    }
  });
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址