aio

个人实用小插件

Terá de instalar uma extensão como Tampermonkey, Greasemonkey ou Violentmonkey para instalar este script.

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

Terá de instalar uma extensão como Tampermonkey ou Violentmonkey para instalar este script.

Terá de instalar uma extensão como Tampermonkey ou Userscripts para instalar este script.

Terá de instalar uma extensão como Tampermonkey para instalar este script.

Terá de instalar uma extensão de gestão de scripts de utilizador para instalar este script.

(Já tenho um gestor de scripts de utilizador, deixe-me instalá-lo!)

Terá de instalar uma extensão como Stylus para instalar este estilo.

Terá de instalar uma extensão como Stylus para instalar este estilo.

Terá de instalar uma extensão como Stylus para instalar este estilo.

Terá de instalar uma extensão de gestão de estilos de utilizador para instalar este estilo.

Terá de instalar uma extensão de gestão de estilos de utilizador para instalar este estilo.

Terá de instalar uma extensão de gestão de estilos de utilizador para instalar este estilo.

(Já tenho um gestor de estilos de utilizador, deixe-me instalá-lo!)

// ==UserScript==
// @name         aio
// @namespace    http://tampermonkey.net/
// @version      2025-03-28
// @description  个人实用小插件
// @author       jiejiejie
// @match        *://*.juquge.com/*
// @match        *://geek-docs.com/*
// @match        *://weixin110.qq.com/*
// @match        *://cowork.apexsoft.com.cn/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=juquge.com
// @grant        none
// ==/UserScript==
var timer = null;
var aio = () => {
  // 等待页面加载完成
  // 获取当前用户 url
  const getCurrentUrl = () => window.location.href;
  const getWebSite = (url) => {
    let juqugeReg = /juquge/;
    let geekDocsReg = /geek-docs/;
    let coworkReg = /cowork/;
    if (juqugeReg.test(url)) {
      return "juquge";
    } else if (geekDocsReg.test(url)) {
      return "geekDocs";
    } else if (coworkReg.test(url)) {
      return "cowork";
    }
  };
  // 处理笔趣阁样式
  const DealJuquge = () => {
    console.log("juquge-aio-loaded");
    const init = () => {
    };
    const main = () => {
    };
    init();
    main();
  };
  // 处理极客文档
  const DealGeekDocs = () => {
    console.log("geekDocs-aio-loaded");
    // 解锁无法滚动
    const unlockScroll = () => {
      document.body.setAttribute("style", "overflow: auto");
      console.log("滚动条已解锁");
    };
    // 删除广告
    const deleteAds = () => {
      // 删除开屏广告
      let viewAdEle = document.querySelector(".fc-message-root");
      viewAdEle?.parentElement?.removeChild(viewAdEle);
      // 删除右侧广告
      let rightAds = document.querySelector(".tbrside");
      rightAds?.parentElement?.removeChild(rightAds);
      // 删除底部广告
      let bottomAds = document.querySelector(".adsbygoogle");
      bottomAds?.parentElement?.removeChild(bottomAds);
      // 去除文章中广告
      let contentAds = document.querySelectorAll(".eaa_desktop");
      contentAds.forEach((item) => {
        item.parentElement?.removeChild(item);
      });
      console.log("广告已删除");
    };
    // 平铺文章
    const fullContent = () => {
      let contentWrapEle = document.querySelector(".content-wrap");
      let contentEle = document.querySelector(".content");
      contentWrapEle.setAttribute("style", "margin-right: 0 !important");
      contentEle.setAttribute("style", "margin-right: 0 !important");
      console.log("文章已平铺");
    };
    const init = () => {
      let clearButton = document.createElement("button");
      clearButton.innerHTML = "清除广告";
      clearButton.setAttribute("style", "position: fixed; bottom: 100px; right: 0; z-index: 9999999999;");
      clearButton.onclick = main;
      document.body.appendChild(clearButton);
      // deal_geekDocs()
    };
    const main = () => {
      unlockScroll();
      deleteAds();
      fullContent();
    };
    init();
  };
  // 处理 cowork 在 firefox 上的样式问题
  const DealCowork = () => {
    console.log("cowork-aio-loaded");
    let iframeEle = document.querySelector("iframe").contentWindow;
    const dealAlert = () => {
      iframeEle.alert = () => {
      };
      window.alert = () => {
      };
    };
    const dealStyle = () => {
      let fixButton = document.createElement("button");
      fixButton.innerHTML = "修复样式";
      fixButton.onclick = () => {
        let contentEle = iframeEle.document.querySelector(".mainContainer");
        contentEle.setAttribute("style", "width:-webkit-fill-available;height: 100%;");
      };
      let mountNodeLength = iframeEle.document.querySelectorAll(".left_menu").length;
      let buttonForm = iframeEle.document.querySelectorAll(".left_menu")[mountNodeLength - 1 > 0 ? mountNodeLength - 1 : 0];
      buttonForm.appendChild(fixButton);
    };
    dealAlert();
    dealStyle();
  };
  if (!window || !window.addEventListener) {
    if (timer) {
      console.log("by aio: window dont exist and timer is empty");
      clearTimeout(timer);
    }
    timer = setTimeout(() => {
      console.log("by aio: aio will run after 2s");
      aio();
    }, 2000);
  } else {
    if (timer) {
      console.log("by aio: window exist and timer is not empty, timer will be cleared");
      clearTimeout(timer);
    }
    window.addEventListener("load", () => {
      console.log("by aio: window loaded");
      let currentUrl = getCurrentUrl();
      let webSite = getWebSite(currentUrl);
      console.log(webSite);
      switch (webSite) {
        case "juquge":
          DealJuquge();
          break;
        case "geekDocs":
          DealGeekDocs();
          break;
        case "cowork":
          DealCowork();
          break;
        default:
          console.log("当前页面无法处理");
      }
      window.removeEventListener("load", () => {
      });
    });
  }
};
aio();