blob: d300fbd03367ad3d1b87b6ce828116a9d90d71bf (
plain) (
tree)
|
|
// ==UserScript==
// @name Fix input fields
// @namespace snake66
// @description Fix input fields with unreadable text
// @include http://*/*
// @include https://*/*
// @version 2
// @grant none
// ==/UserScript==
function normalizedColor(color)
{
let argstart = color.indexOf("(") + 1;
let arglen = color.lastIndexOf(")") - argstart;
let type = color.substr(0, argstart - 1);
let args = color.substr(argstart, arglen).split(", ").map(function(v) {
return parseInt(v);
});
return {type: type, val: args}
}
function isBright(color)
{
if (!color || color == "")
return false;
let c = normalizedColor(color);
if (c.type != "rgb")
return false;
let avg = (c.val[0] + c.val[1] + c.val[2]) / 3;
return avg > 90;
}
function fixInputFields()
{
let inputs = document.getElementsByTagName("input");
console.log("Fix input fields found " + inputs.length + " inputs...");
for (let i = 0; i < inputs.length; i++) {
let input = inputs[i];
let style = getComputedStyle(input);
let fg = style.getPropertyValue("color");
let bg = style.getPropertyValue("background-color");
let image = style.getPropertyValue("background-image");
if (image) {
input.style.backgroundImage = "none";
}
if (isBright(bg)) {
if (isBright(fg)) {
input.style.color = "darkslategray";
}
} else if (!isBright(fg)) {
input.style.color = "lightgray";
}
}
console.log("Fix input fields end...");
}
fixInputFields();
|