您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
30/06/2024, 11:35:39
// ==UserScript== // @name Medium to Freedium // @namespace Violentmonkey Scripts // @match *://*.medium.com/* // @grant none // @version 1.3 // @description 30/06/2024, 11:35:39 // @require https://unpkg.com/@violentmonkey/url // @include /.*\..*\..*\/.*/ // @license MIT // ==/UserScript== const { onNavigate } = VM; function handleNavigate() { /* The script is also run on two subdomains as some Medium articles are on those. As Medium is an SPA, we have to use `onNavigate` However, we might not be on an article */ if (window.location.hostname === "medium.com") { if (!/.*\:\/\/.*medium\.com\/.*\/.*/.test(window.location.href)) { return; } } /* As mentioned earlier, we might be on two nested subdomains that are a Medium article. We can check this: the include patterns are setup to match that */ document.querySelectorAll("meta").forEach((el) => { if (el.getAttribute("content") === "Medium") { onMedium(); return; } }); } // Watch route change VM.onNavigate(handleNavigate); // Call it once for the initial state handleNavigate(); function onMedium() { // Remove all elements from the page document.body.innerHTML = ''; document.head.innerHTML = ''; // Add custom styles to prevent FOUC const style = document.createElement('style'); style.innerHTML = "body { background-color: rgb(31, 41, 55); }"; document.head.appendChild(style); // Redirect to Freedium const redirectTo = `https://freedium.cfd/${window.location.hostname}/${window.location.pathname}`; window.location.replace(redirectTo); }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址