Greasy Fork is available in English.

黑白网页恢复彩色

黑白网页恢复彩色,匹配所有网页,即装即用。

Fra 05.12.2022. Se den seneste versjonen.

// ==UserScript==
// @name         黑白网页恢复彩色
// @namespace    http://tampermonkey.net/
// @version      1.10
// @license      MIT
// @description  黑白网页恢复彩色,匹配所有网页,即装即用。
// @author       https://greasyfork.org/users/574395-frammolz-amanda
// @match        *://*/*
// @grant        none
// ==/UserScript==

window.addEventListener("load", function () {
    var filter = document.createElement('style');
    filter.type = 'text/css';
    document.head.appendChild(filter);
    var windowUrl = window.location.href;
    if(document.getElementById("nv_forum"))document.getElementById("nv_forum").style.setProperty("background-blend-mode","normal");//Discuz论坛通用
    if( windowUrl.match(/https:\/\/www.58pic.com\/($|\?)/))filter.appendChild(document.createTextNode("*{-webkit-filter:none !important;}"));
    if( windowUrl.match(/https:\/\/www.baidu.com\/($|\?)/)){
        document.getElementById("s_lg_img").setAttribute("src","https://www.baidu.com/img/flexible/logo/pc/index.png");
        document.getElementById("s_lg_img_new").setAttribute("src","https://www.baidu.com/img/flexible/logo/pc/index.png");
        document.getElementById("su").style.setProperty("background-color","#4e6ef2","important");
        if (document.getElementsByClassName("index-logo-src").length==1){
            document.getElementsByClassName("index-logo-src")[0].setAttribute("src","https://www.baidu.com/img/flexible/logo/pc/result.png");
            document.getElementsByClassName("index-logo-peak")[0].setAttribute("src","https://www.baidu.com/img/flexible/logo/pc/result.png");
            document.getElementsByClassName("index-logo-srcnew")[0].setAttribute("src","https://www.baidu.com/img/flexible/logo/pc/result.png");
        }
    }
    if( windowUrl.match(/https:\/\/m.baidu.com\/($|\?)/)){
        document.getElementById("logo").getElementsByTagName("a")[0].getElementsByTagName("img")[0].setAttribute("src","https://www.baidu.com/img/flexible/logo/logo_web.png");
        document.getElementById("index-bn").style.setProperty("background-color","#4e6ef2","important");
    }
    if( windowUrl.match(/https:\/\/www.bilibili.com\/($|\?)/)){
        document.documentElement.removeAttribute("class")
        var source=[["//i0.hdslb.com/bfs/archive/0ac04c23af3b3297bf02dca163474326898d211d.png","//i0.hdslb.com/bfs/archive/583e5db0ffa0c4de4fc88de35e802767a9c93b63.png","//i0.hdslb.com/bfs/archive/ab6b34468bcc179b601541193eda668f2aa6106b.jpg","//i0.hdslb.com/bfs/archive/a421773e566a623fca26e12ae3921bda4a3fd856.png","//i0.hdslb.com/bfs/archive/3329c9f0abfb925ae30441f24d924ad3c19775df.png","//i0.hdslb.com/bfs/archive/57c5ced363be9f08b4cacf1745e221d3bb99d7c5.png"],["//i0.hdslb.com/bfs/archive/bdb288021ff854d3ac618ac8c1eafd300ec9ed9b.png","//i0.hdslb.com/bfs/archive/5d49497b6b7f30950f37c4aff205e7dd1494f3b9.png","//i0.hdslb.com/bfs/archive/bd90aa68aaaaddb1b5421b84298c51f5b90210e0.png","//i0.hdslb.com/bfs/archive/3d30de7942ed74d2515f28ae04eb1444e8d57f40.png","//i0.hdslb.com/bfs/archive/6592e92861e6248205af17702d06ea3f97d81de6.png","//i0.hdslb.com/bfs/archive/58d322146cb4b1685a5775478b9753f96a0c2ff6.png"]]
        var index=Math.floor(Math.random()*6);
        if(document.getElementsByClassName("v-img banner-img").length){document.getElementsByClassName("v-img banner-img")[0].getElementsByTagName("source")[0].setAttribute("srcset",source[0][index]);document.getElementsByClassName("logo-img")[0].setAttribute("src",source[1][index]);}
        else setTimeout(function(){document.getElementsByClassName("bili-banner")[0].style.setProperty("background-image","url(\""+source[0][index]+"\")");document.getElementsByClassName("logo-img")[0].setAttribute("src",source[1][index]);},500);
        return;
    }
    if( windowUrl.match(/https:\/\/weibo.com/)){
        var body = document.body;
        if(body.classList.length){
            document.getElementById("plc_frame").getElementsByTagName("style")[0].remove();
            const callback = function(mutationsList, observer) {
                for(let mutation of mutationsList){
                    if (mutation.type === "childList") document.getElementById("plc_frame").getElementsByTagName("style")[0].remove();
                }
            }
            new MutationObserver(callback).observe(body, { childList: true,});
            return;
        }
    }
    if( windowUrl.match(/https:\/\/www.ixigua.com/)){
        var chd = 0;
        replace();
        if( windowUrl.match(/https:\/\/www.ixigua.com\/[0-9]+/))obs("projection_recommentWrapper");
        else obs("v3-app-layout__content");
        function obs(clsname){
            const callback = function(mutationsList, observer) {
                for(let mutation of mutationsList){
                    if (mutation.type === 'childList') replace();
                }
            }
            new MutationObserver(callback).observe(document.getElementsByClassName(clsname)[0],{ childList: true, subtree: true});
        }
        function replace(){
            var ob=document.getElementsByClassName("HorizontalFeedCard__coverWrapper disableZoomAnimation");
            for( var index=chd;index<Object.keys(ob).length;index++ ){get_pic(ob[index].getAttribute('href').slice(1),index);}
            chd=Object.keys(ob).length;
            function get_pic(vid,index){
                var httpRequest = new XMLHttpRequest();
                httpRequest.open("GET", "https://www.ixigua.com/api/public/videov2/brief/details?group_id="+vid, true);
                httpRequest.send();
                httpRequest.onreadystatechange = function () {
                    if (httpRequest.readyState == 4 && httpRequest.status == 200) var timer=setInterval(function () {if (ob[index].getElementsByTagName("img")[0].complete){ob[index].getElementsByClassName("tt-img BU-MagicImage tt-img-loaded")[0].setAttribute("src",JSON.parse(httpRequest.responseText).data.posterUrl.slice(5));clearInterval(timer);}},50);
                }
            }
        }
    }
    fir();
    function fir(){
        let styleSheets=document.styleSheets;
        for (const key in styleSheets) {
            if (Object.hasOwnProperty.call(styleSheets, key)) {
                try{
                    if(styleSheets[key].href){get_css(styleSheets[key].href)}
                    let cssRules=styleSheets[key].cssRules;
                    for (const k in cssRules) {
                        if (Object.hasOwnProperty.call(cssRules, k)) {
                            if(cssRules[k].cssText.match(/filter.*grayscale/)){
                                set(cssRules[k].cssText);
                            }
                        }
                    }
                }catch{}
            }
        }
        function get_css(url){
            var httpRequest = new XMLHttpRequest();
            httpRequest.open("GET", url, true);
            httpRequest.send();
            httpRequest.onreadystatechange = function () {
                if (httpRequest.readyState == 4 && httpRequest.status == 200){
                    for(var em of httpRequest.responseText.split("}")){
                        if(em.match(/filter.*grayscale/)){
                            set(em);
                        }
                    }
                }
            }
        }
        function set(ele){
            console.log(ele)
            if(ele.match(/grayscale(.*?)[^;]important/))filter.appendChild(document.createTextNode(ele.replace(/grayscale\(.*?\)/g,"grayscale(0)")));
            else filter.appendChild(document.createTextNode(ele.replace(/grayscale\(.*?\)/g,"grayscale(0)!important")));
        }
    }
})