|
|
[backcolor=var(--chat-bg-color,transparent)][color=var(--s-color-text-secondary)][color=var(--s-color-text-secondary)][backcolor=var(--s-color-bg-trans)]不知道这个豆包答案能成否
[color=var(--s-color-text-secondary)][backcolor=var(--s-color-bg-trans)]写一个油猴代码实现选定网址内容重定向后打开,比如一些人发的度盘地址,缺少前面的部分;比如github的地址要用bgithub.xyz打开;还有那些加杂了删、除、掉等插符地址;还有好多需要规则修改后打开的地址。
[backcolor=var(--chat-bg-color,transparent)][color=var(--s-color-text-secondary)][color=var(--color-text-primary)][size=1.25em][color=var(--md-box-body-color,var(--md-box-global-text-color))]你需要一个功能全面的油猴脚本,能够自动识别并修正各类不完整或被干扰的网址(如缺失前缀的度盘链接、需要镜像的 GitHub 链接、夹杂干扰字符的地址),然后重定向到正确的地址打开。
[color=var(--md-box-body-color,var(--md-box-global-text-color))]这个脚本会实现以下核心能力:
- 自动识别选中的文本中的各类特殊链接
- 按预设规则清洗和补全链接
- 一键在新标签页打开修正后的正确链接
- 支持自定义扩展新的链接修正规则
- // ==UserScript==
- // @name 智能链接修正与重定向
- // @namespace http://tampermonkey.net/
- // @version 1.0
- // @description 自动修正各类不完整/带干扰字符的链接(度盘、GitHub镜像等)并打开
- // @author You
- // @match *://*/*
- // @grant GM_openInTab
- // @grant GM_registerMenuCommand
- // ==/UserScript==
- (function() {
- 'use strict';
- // 链接修正规则配置(可自定义扩展)
- const linkFixRules = [
- // 1. 百度网盘链接修复(补全前缀)
- {
- name: "百度网盘链接修复",
- test: (text) => /^(pan\.baidu\.com|s\/\w+|提取码)/i.test(text),
- fix: (text) => {
- // 提取核心链接部分
- const linkMatch = text.match(/(s\/\w+|share\/\w+)/i);
- if (linkMatch) {
- return `https://pan.baidu.com/${linkMatch[0]}`;
- }
- // 如果是完整链接但可能有干扰字符,直接清洗
- return text.replace(/[删|除|掉|【|】|(|)|\s]/g, '')
- .replace(/^pan\.baidu\.com/, 'https://pan.baidu.com');
- }
- },
- // 2. GitHub链接转bgithub镜像
- {
- name: "GitHub转bgithub镜像",
- test: (text) => /github\.com/i.test(text),
- fix: (text) => {
- // 清洗干扰字符后替换域名
- return text.replace(/[删|除|掉|【|】|(|)|\s]/g, '')
- .replace(/github\.com/gi, 'bgithub.xyz');
- }
- },
- // 3. 通用干扰字符清洗(适用于所有链接)
- {
- name: "通用干扰字符清洗",
- test: (text) => /http(s)?:\/\/|www\./i.test(text),
- fix: (text) => {
- // 移除常见干扰字符:删、除、掉、各种括号、空格等
- return text.replace(/[删|除|掉|【|】|(|)|《|》|,|。|、|\s]/g, '');
- }
- }
- ];
- // 获取选中的文本
- function getSelectedText() {
- return window.getSelection().toString().trim();
- }
- // 修正链接的核心函数
- function fixLink(text) {
- if (!text) return null;
-
- // 依次应用修正规则
- let fixedText = text;
- for (const rule of linkFixRules) {
- if (rule.test(fixedText)) {
- fixedText = rule.fix(fixedText);
- // 找到匹配的规则后可以停止,也可以继续(根据需求调整)
- // break;
- }
- }
-
- // 最终验证是否为有效链接
- try {
- new URL(fixedText); // 验证URL格式
- return fixedText;
- } catch (e) {
- return null;
- }
- }
- // 打开修正后的链接
- function openFixedLink() {
- const selectedText = getSelectedText();
- if (!selectedText) {
- alert("请先选中需要修正的链接文本!");
- return;
- }
- const fixedLink = fixLink(selectedText);
- if (fixedLink) {
- GM_openInTab(fixedLink, { active: true }); // 在新标签页打开
- } else {
- alert("未能识别或修正该链接,请检查文本格式!");
- }
- }
- // 注册油猴菜单命令
- GM_registerMenuCommand("修正并打开选中的链接", openFixedLink);
- // 可选:添加快捷键支持(Alt+O 打开)
- document.addEventListener('keydown', function(e) {
- // Alt + O 触发
- if (e.altKey && e.key.toLowerCase() === 'o') {
- openFixedLink();
- }
- });
- })();
复制代码 脚本使用说明
- 安装方式:
- 复制上述完整代码
- 打开油猴插件(Tampermonkey)→ 新建脚本 → 替换原有内容 → 保存
- 使用方法:
- 在网页中选中需要修正的链接文本(如 s/123456、github.com/xxx 删 除 等)
- 方式 1:点击油猴插件图标 → 选择「修正并打开选中的链接」
- 方式 2:按下 Alt + O 快捷键(可自定义修改)
- 自定义扩展规则:
- 在 linkFixRules 数组中添加新的规则对象即可,每个规则包含:
- name:规则名称(仅标识用)
- test:检测函数(判断文本是否匹配该规则)
- fix:修正函数(对文本进行处理,返回修正后的内容总结
- 脚本核心是规则化修正:通过预设的正则匹配和文本处理规则,自动修复不同类型的异常链接;
- 使用便捷:支持菜单点击和快捷键两种触发方式,适配绝大多数网页场景;
- 高度可扩展:只需在 linkFixRules 中添加新规则,即可支持更多类型的链接修正,满足个性化需求。
脚本已做了基础的异常处理(如无选中文本、链接格式无效等),你可以根据自己的使用场景继续优化规则或快捷键。
|
评分
-
查看全部评分
|