您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
If you use a dark theme defective CSS styles will give you white on white text color. This is a fix for that.
当前为
// ==UserScript== // @name Fix bad CSS foreground color // @name:hu Rossz CSS előtér színek javítása // @namespace adventuretc // @description If you use a dark theme defective CSS styles will give you white on white text color. This is a fix for that. // @description:hu Ha sötét témát használsz a rossz CSS-ek fehér alapon fehér szöveget eredményezhetnek. Ez egy javítás erre. // @include * // @version 1 // @grant none // ==/UserScript== main(); setTimeout(function(){ main(); }, 2000); function main() { var fixedTags = ["textarea", "input", "select"]; for (var i = 0; i<fixedTags.length; ++i) { var v = fixedTags[i]; if (!gettag(v)[0]) continue; for (var y = 0; y<gettag(v).length; ++y) { if (!gettag(v)[y]) continue; var observed = gettag(v)[y]; var changed = gettag(v)[y]; var style = window.getComputedStyle(observed); var defaultStyle = window.getDefaultComputedStyle(observed); var backgroundColor = style.getPropertyValue("background-color"); var defaultBackgroundColor = defaultStyle.getPropertyValue("background-color"); if (backgroundColor === "transparent" && !hasStyledBackground(observed)) { var observedMaybe = findUpColoredBackground(observed); //find first parent with color if (observedMaybe) { observed = observedMaybe; } else { continue; } } style = window.getComputedStyle(observed); defaultStyle = window.getDefaultComputedStyle(observed); backgroundColor = style.getPropertyValue("background-color"); defaultBackgroundColor = defaultStyle.getPropertyValue("background-color"); if (hasStyledBackground(observed)) //webpage specified some background { if (style.color === defaultStyle.color) //but not foreground { if ( average( rgbArray(backgroundColor) ) > 127 ) { changed.style.color = "#000"; } else { changed.style.color = "#FFF"; } if (backgroundColor === "transparent") { changed.style.color = "#000"; } } } } } } function average(someArr) { var sum = 0; for (var i=0; i<someArr.length; ++i) { sum += parseInt(someArr[i]); } return (sum/someArr.length); } function rgbArray(rgb) { rgb = rgb.replace(/[^\d,]/g, '').split(','); return rgb; } function gettag(s) { return document.getElementsByTagName(s); } function findUpColoredBackground(el) { while (el.parentNode) { el = el.parentNode; if (hasStyledBackground(el)) //webpage specified some background { if (backgroundColor !== "transparent") { return el; } } } return null; } function hasStyledBackground(element) { var style = window.getComputedStyle(element); var defaultStyle = window.getDefaultComputedStyle(element); var backgroundColor = style.getPropertyValue("background-color"); var defaultBackgroundColor = defaultStyle.getPropertyValue("background-color"); var backgroundImage = style.getPropertyValue("background-image"); var defaultBackgroundImage = defaultStyle.getPropertyValue("background-image"); if (backgroundColor !== defaultBackgroundColor) { return true; } if (backgroundImage !== defaultBackgroundImage) { return true; } return false; }