您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
支持 HTTP 到 HTTPS 和 HTTPS 到 HTTP 重定向,支持关键字替换功能
- // ==UserScript==
- // @name URL Manager
- // @namespace https://space.bilibili.com/398910090
- // @version 1.1
- // @author Ace
- // @description 支持 HTTP 到 HTTPS 和 HTTPS 到 HTTP 重定向,支持关键字替换功能
- // @match *://*/*
- // @grant GM_registerMenuCommand
- // @grant GM_getValue
- // @grant GM_setValue
- // ==/UserScript==
- (function() {
- 'use strict';
- // 获取重定向站点列表
- let httpToHttpsSites = JSON.parse(GM_getValue("httpToHttpsSites", "[]"));
- let httpsToHttpSites = JSON.parse(GM_getValue("httpsToHttpSites", "[]"));
- let keywordReplacements = JSON.parse(GM_getValue("keywordReplacements", "{}"));
- // 添加菜单选项
- GM_registerMenuCommand("将当前网站添加到 HTTP 重定向规则", () => toggleSite(httpToHttpsSites, "httpToHttpsSites"));
- GM_registerMenuCommand("将当前网站添加到 HTTPS 重定向规则", () => toggleSite(httpsToHttpSites, "httpsToHttpSites"));
- GM_registerMenuCommand("添加/删除网址替换规则", manageKeywordReplacements);
- // 站点添加/删除功能
- function toggleSite(siteList, storageKey) {
- const site = window.location.hostname;
- const siteIndex = siteList.indexOf(site);
- const action = siteIndex === -1 ? "添加到" : "从";
- if (confirm(`确定要删除${action} ${site} 的规则吗?`)) {
- siteIndex === -1 ? siteList.push(site) : siteList.splice(siteIndex, 1);
- GM_setValue(storageKey, JSON.stringify(siteList));
- alert(`已${action === "添加到" ? "添加" : "删除"} ${site} 的规则。`);
- }
- }
- // 添加/删除网址替换规则
- function manageKeywordReplacements() {
- const url = window.location.hostname;
- const keyword = prompt("请输入要替换的网址关键字:");
- if (!keyword) return;
- const replacement = prompt(`将 ${keyword} 替换成什么内容:`);
- if (replacement === null) return;
- if (!keywordReplacements[url]) keywordReplacements[url] = [];
- keywordReplacements[url].push({ keyword, replacement });
- GM_setValue("keywordReplacements", JSON.stringify(keywordReplacements));
- alert(`已为 ${url} 设置替换规则:${keyword} -> ${replacement}`);
- }
- // 执行 HTTP 到 HTTPS 或 HTTPS 到 HTTP 重定向
- function performRedirect() {
- const protocol = window.location.protocol;
- const host = window.location.hostname;
- if (protocol === "http:" && httpToHttpsSites.includes(host)) {
- window.location.href = window.location.href.replace("http://", "https://");
- } else if (protocol === "https:" && httpsToHttpSites.includes(host)) {
- window.location.href = window.location.href.replace("https://", "http://");
- }
- }
- // 关键字替换功能
- function applyKeywordReplacements() {
- const url = window.location.href;
- const host = window.location.hostname;
- if (keywordReplacements[host]) {
- let newUrl = url;
- keywordReplacements[host].forEach(replacement => {
- newUrl = newUrl.replace(new RegExp(replacement.keyword, "g"), replacement.replacement);
- });
- if (newUrl !== url) window.location.href = newUrl;
- }
- }
- performRedirect();
- applyKeywordReplacements();
- })();