您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Router for TamperMonkey scripts
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.gf.qytechs.cn/scripts/468396/1203270/TamperMonkeyRouter.js
// ==UserScript== // @name TamperMonkeyRouter // @name:zh-CN TamperMonkey路由 // @namespace http://tampermonkey.net/ // @version 0.1 // @description Router for TamperMonkey scripts // @author HowardZhangdqs // @grant none // @license WTFPL // ==/UserScript== (function () { 'use strict'; const Router = class Router { // static opt = { // hashchange: false, // }; // constructor(options = {}) { // this.opt = Object.assign(this.opt, options || {}); // } static getParamType(param) { const _t = typeof param return (_t == "object" ? Object.prototype.toString.call(param).slice(8, -1) : _t ).toLowerCase(); } static is_match(src, input) { if (src.length == 0 && input.length == 0) return true; if (src[0] == "*" && src.length == 1) return true; if (src.length == 0 || input.length == 0) return false; if (src[0] == "?") return this.is_match(src.substring(1), input.substring(1)); else if (src[0] == "*") return this.is_match(src.substring(1), input) || this.is_match(src.substring(1), input.substring(1)) || this.is_match(src, input.substring(1)); else if (src[0] == input[0]) return this.is_match(src.substring(1), input.substring(1)); else return false; } router(path, callback) { const href = window.location.href; if (Router.getParamType(path) == "string") { if (Router.is_match(path, href)) (() => { callback(); })(); } else if (Router.getParamType(path) == "regexp") { if (path.test(href)) (() => { callback(); })(); } else { throw new Error("Invalid type `" + Router.getParamType(path) + "` of input"); } } } window.TamperMonkeyRouter = new Router().router; })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址