黑白网页恢复彩色,匹配所有网页,即装即用。
向head中插入style标签时发生冲突,插入样式函数按照下面替换掉就好了,麻烦自己替换一下,在最后几行,不再特意更新。
function set(ele){
try{
ele=ele.replace(/saturate\(.*?\)/g,"saturate(1)");
}catch{}
if(ele.match(/grayscale(.*?)[^;]important/)) document.styleSheet.insertRule(ele.replace(/grayscale\(.*?\)/g,"grayscale(0)"), document.styleSheet.cssRules.length);
else{
var text=ele.replace(/grayscale\(.*?\)/g,"grayscale(0)").slice(0,-1);
var csstext=""
for(var st of text.split(";")){
if(st.match(/grayscale\(0\)/)) csstext+=st+"!important;"
else if(st.match(/^\s+$/)){}
else csstext+=st+";";
}
document.styleSheet.insertRule(csstext+"}", document.styleSheet.cssRules.length);
}
}
向head中插入style标签时发生冲突,插入样式函数按照下面替换掉就好了,麻烦自己替换一下,在最后几行,不再特意更新。
作者搞错了啦,看了下代码,这个函数没问题,问题是这个页面的style写在了body标签内部,权重比指定body设置grayscale(0)!imporatant还要高,我试了下直接获取所有style元素再找到grayscale之后替换掉有用,加在主函数里面就OK。
var sty=document.getElementsByTagName("style");
for(var i=0;i<Object.keys(sty).length;i++){
try{
sty[i].innerHTML=sty[i].innerHTML.replace(/saturate\(.*?\)/g,"saturate(1)");
}catch{}
if(sty[i].innerHTML.match(/filter.*grayscale/)) sty[i].innerHTML = sty[i].innerHTML.replace(/grayscale(.*?)/g, "grayscale(0)");
}
向head中插入style标签时发生冲突,插入样式函数按照下面替换掉就好了,麻烦自己替换一下,在最后几行,不再特意更新。
作者搞错了啦,看了下代码,这个函数没问题,问题是这个页面的style写在了body标签内部,权重比指定body设置grayscale(0)!imporatant还要高,我试了下直接获取所有style元素再找到grayscale之后替换掉有用,加在主函数里面就OK。
正则表达式写错了,正确代码如下,最好加在最后
var sty=document.getElementsByTagName("style");
for(var i=0;i<Object.keys(sty).length;i++){
try{
sty[i].innerHTML=sty[i].innerHTML.replace(/saturate\(.*?\)/g,"saturate(1)");
}catch{}
if(sty[i].innerHTML.match(/filter.*grayscale/)) sty[i].innerHTML = sty[i].innerHTML.replace(/grayscale\(.*?\)/g, "grayscale(0)");
}
向head中插入style标签时发生冲突,插入样式函数按照下面替换掉就好了,麻烦自己替换一下,在最后几行,不再特意更新。
作者搞错了啦,看了下代码,这个函数没问题,问题是这个页面的style写在了body标签内部,权重比指定body设置grayscale(0)!imporatant还要高,我试了下直接获取所有style元素再找到grayscale之后替换掉有用,加在主函数里面就OK。
正则表达式写错了,正确代码如下,最好加在最后
草,刚刚刷了下知乎,发现不小心把别的也给换了,知乎有bug,还是这样最稳
var sty=document.getElementsByTagName("style");
for(var i=0;i<Object.keys(sty).length;i++){
if(sty[i].innerHTML.match(/filter.*grayscale/))sty[i].innerHTML = sty[i].innerHTML.replace(/grayscale\(.*?\)/g, "grayscale(0)");
}
向head中插入style标签时发生冲突,插入样式函数按照下面替换掉就好了,麻烦自己替换一下,在最后几行,不再特意更新。
作者搞错了啦,看了下代码,这个函数没问题,问题是这个页面的style写在了body标签内部,权重比指定body设置grayscale(0)!imporatant还要高,我试了下直接获取所有style元素再找到grayscale之后替换掉有用,加在主函数里面就OK。
正则表达式写错了,正确代码如下,最好加在最后
草,刚刚刷了下知乎,发现不小心把别的也给换了,知乎有bug,还是这样最稳
var sty=document.getElementsByTagName("style"); for(var i=0;i<Object.keys(sty).length;i++){ if(sty[i].innerHTML.match(/filter.*grayscale/))sty[i].innerHTML = sty[i].innerHTML.replace(/grayscale\(.*?\)/g, "grayscale(0)"); }
感谢!
mydigit.cn 网站不行 求支持!