清理网页标题字符

从页面标题中删除指定的字符,脚本菜单里输入需要删除的字符

目前为 2023-05-14 提交的版本。查看 最新版本

// ==UserScript==
// @name         清理网页标题字符
// @version      2.0
// @author       ChatGPT
// @description  从页面标题中删除指定的字符,脚本菜单里输入需要删除的字符
// @match        *://*/*
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_registerMenuCommand
// @namespace https://gf.qytechs.cn/users/452911
// ==/UserScript==

(function() {
    'use strict';

    let filters = [];

    // 获取用户设置的字符过滤器
    function getConfiguredFilters() {
        return prompt('请输入需要删除的字符(用 & 分隔)或留空不做更改:', GM_getValue('filters')) || '';
    }

    // 将用户定义的过滤器转换为数组并保存到全局变量中
    function updateFilters() {
        filters = getConfiguredFilters().split('&').map(filter => filter.trim());
        GM_setValue('filters', filters.join('&'));
        cleanTitle();
    }

    // 添加“编辑清除字符”选项到油猴脚本菜单中
    function setConfiguredFilters() {
        updateFilters();
    }

    // 注册(不可用)“编辑清除字符”选项
    GM_registerMenuCommand('清理网页标题字符 - 编辑清除字符', setConfiguredFilters);

    // 标题清理函数
    function cleanTitle() {
        let originalTitle = document.title;
        let cleanedTitle = originalTitle;

        for (let i = 0; i < filters.length; i++) {
            cleanedTitle = cleanedTitle.replaceAll(filters[i], '');
        }

        if (originalTitle !== cleanedTitle) {
            document.title = cleanedTitle;
            cleanTitle(); // 如果清理后仍然有匹配的字符,则继续清理。
        }
    }

    // 初始化,如果有过滤器就进行标题清理
    filters = GM_getValue('filters') ? GM_getValue('filters').split('&').map(filter => filter.trim()) : [];
    if (filters.length > 0) {
        cleanTitle();
    }

    // 监听“编辑清除字符”选项,在用户保存新的过滤器时更新并执行清理
    window.addEventListener('message', (event) => {
        if (event.source === window && event.data.type && event.data.type === 'SET_FILTERS') {
            updateFilters();
        }
    });

    // 在油猴脚本界面中显示当前过滤器设置
    GM_registerMenuCommand('清理网页标题字符 - 当前过滤器', () => {
        alert(`当前过滤器: ${GM_getValue('filters') || '未设置'}`);
    });
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址