bilibili干净链接

去除bilibili链接中不需要的参数,如?spm_id_from=********、#spm_id_from=*******、?from=*******等,还我一个干净的地址

Version au 20/12/2019. Voir la dernière version.

// ==UserScript==
// @name         bilibili干净链接
// @namespace    Motoori Kokoro
// @version      1.0
// @description  去除bilibili链接中不需要的参数,如?spm_id_from=********、#spm_id_from=*******、?from=*******等,还我一个干净的地址
// @author       Motoori Kokoro
// @match        *://*.bilibili.com/*
// @run-at       document-start
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    /*******使用正则表达式暴力去除参数*******/
    // 处理a标签
    function relnk(){
        var links = document.getElementsByTagName("a");
        for (var i = 0 ; i < links.length ; i++){
            var link = links[i];
            if (link.href){
                var a = link.href;
                var href = a.match(/^[A-Za-z0-9\-=\.\/\:\?%#_]*/);
                if (/spm/.test(href) | /from/.test(href) | /\?t=/.test(href)){
                    href = a.match(/^[A-Za-z0-9\-=\.\/\:%#_]*/);
                }
                link.href = href;
            }
        }
    }
    // 处理地址栏
    var url=window.location.href;
        if (/spm/.test(url) | /from/.test(url) | /\?t=/.test(url)){
            var nurl = url.match(/^[A-Za-z0-9\-=\.\/\:\?%#_]*/);
            if (/spm/.test(nurl) | /from/.test(nurl) | /\?t=/.test(nurl)){
                nurl = url.match(/^[A-Za-z0-9\-=\.\/\:%#_]*/);
            }
            window.location.replace(nurl);
            }
    // 监听网页加载,针对直接写进a标签的参数
    window.onload = function(event){relnk();}
    // 监听点击事件,针对延迟添加的参数
    window.onclick = function(event){
        // 处理未更新history时的地址栏
        // 检查地址栏是否改变
        var turl=window.location.href;
        if (turl != url){
            if (/spm/.test(turl) | /from/.test(turl) | /\?t=/.test(turl)){
                var nurl = turl.match(/^[A-Za-z0-9\-=\.\/\:%#_]*/);
                window.location.replace(nurl);
            }
        }
        relnk();
    }
})();
长期地址
遇到问题?请前往 GitHub 提 Issues。