Web Injector Web Injector

Developer Tools
Version: 1.0.1
Last Update: 2019-03-08

User Reviews


avatar Ajoe Alex
2019-01-31

excellent.Just What I wanted.
could be better to have a button to start injecting or stop injecting.

avatar m.ali petek
2017-10-17

Excellent. There are a lot of extensions do injection for domain. But this injects to all pages, every page. Awesome.

Here is my darkener, I just dont want to see white anymore.

function rgb2hsl(rgbArr)
var r1 = rgbArr[0] / 255;
var g1 = rgbArr[1] / 255;
var b1 = rgbArr[2] / 255;
var alpha = rgbArr[3] ? rgbArr[3] : 1;

var maxColor = Math.max(r1,g1,b1);
var minColor = Math.min(r1,g1,b1);
//Calculate L:
var L = (maxColor + minColor) / 2 ;
var S = 0;
var H = 0;
if(maxColor != minColor)
//Calculate S:
if(L 0.5)
S = (maxColor - minColor) / (maxColor + minColor);
else
S = (maxColor - minColor) / (2.0 - maxColor - minColor);

//Calculate H:
if(r1 == maxColor)
H = (g1-b1) / (maxColor - minColor);
else if(g1 == maxColor)
H = 2.0 + (b1 - r1) / (maxColor - minColor);
else
H = 4.0 + (r1 - g1) / (maxColor - minColor);



L = L * 100;
S = S * 100;
H = H * 60;
if(H0)
H += 360;

var result = [H, S, L, alpha];
return result;


function hslToRgb(h, s, l, a)
var r, g, b;

if (s == 0)
r = g = b = l; // achromatic
else
function hue2rgb(p, q, t)
if (t 0) t += 1;
if (t 1) t -= 1;
if (t 1/6) return p + (q - p) * 6 * t;
if (t 1/2) return q;
if (t 2/3) return p + (q - p) * (2/3 - t) * 6;
return p;


var q = l 0.5 ? l * (1 + s) : l + s - l * s;
var p = 2 * l - q;

r = hue2rgb(p, q, h + 1/3);
g = hue2rgb(p, q, h);
b = hue2rgb(p, q, h - 1/3);

return [ r * 255, g * 255, b * 255, a];

function hexToRGB(hex, alpha)
var r, g, b;
if(hex.length 5)
r = parseInt(hex.slice(1, 2), 16),
g = parseInt(hex.slice(2, 3), 16),
b = parseInt(hex.slice(3, 4), 16);
else
r = parseInt(hex.slice(1, 3), 16),
g = parseInt(hex.slice(3, 5), 16),
b = parseInt(hex.slice(5, 7), 16);

if (alpha)
return "rgba(" + r + ", " + g + ", " + b + ", " + alpha + ")";
else
return "rgb(" + r + ", " + g + ", " + b + ")";


function parseRGB(str)
return str.replace(/[^\d,]/g, '').split(',');

function bgcToHSL(bgc, type)
var rgba, hsla;
if(type == 'hex')
rgba = hexToRGB(bgc,1);
rgba = parseRGB(bgc);
if(rgba.length == 3) rgba.push(1);

if(type == 'rgb')
rgba = parseRGB(bgc);
if(rgba.length == 3) rgba.push(1);

if(type == 'hsl')
hsla = parseRGB(bgc);
if(hsla.length == 3) hsla.push(1);

hsla = rgb2hsl(rgba);
hsla.forEach((e,i)=hsla[i] = Math.round(e););
return hsla;

function _darkit(e)

if(e.getAttribute('data-darkened')) return;
e.setAttribute('data-darkened', true);
var style = window.getComputedStyle(e);
var bgc = style.getPropertyValue('background-color');
var bgct;
var clr = style.getPropertyValue('color');
var bg = style.getPropertyValue('background-image');
if(bgc == '' bgc == 'initial' bgc == 'inherit' bgc == 'transparent') return
if(bg.indexOf('gradient') !== -1) console.log(bg);

if(bgc.indexOf('rgb') !== -1) bgct = 'rgb';
if(bgc.indexOf('hsl') !== -1) bgct = 'hsl';
if(bgc.indexOf('#') !== -1) bgct = 'hex';

var bgHsl = bgcToHSL(bgc, bgct);
//var newRgb = hslToRgb(bgHsl[0], bgHsl[1], bgHsl[2], bgHsl[3]);
var lightness = bgHsl[2] 40 ? bgHsl[2] - 20 : bgHsl[2] / 2;
var newBgc = `hsla($bgHsl[0], $bgHsl[1]%, $lightness%, $bgHsl[3])!important`;
//console.log(newBgc);
// e.style.background = 'none';
var existingStyle = e.getAttribute('style');
e.setAttribute('style', existingStyle + ';background-color:' + newBgc);
//e.style.color = '#ccc';
//e.style.borderColor = '#555';

_darkit(document.querySelector('body'));
document.querySelectorAll('body *').forEach(e=
_darkit(e);
);

document.addEventListener('DOMNodeInserted', (e)=
document.querySelectorAll('body *').forEach(e=
_darkit(e);
);
);

avatar Josh Lowery
2015-01-23

Perfectly perfect!

avatar Ajoe Alex
2019-01-31

excellent.Just What I wanted.
could be better to have a button to start injecting or stop injecting.

avatar m.ali petek
2017-10-17

Excellent. There are a lot of extensions do injection for domain. But this injects to all pages, every page. Awesome.

Here is my darkener, I just dont want to see white anymore.

function rgb2hsl(rgbArr)
var r1 = rgbArr[0] / 255;
var g1 = rgbArr[1] / 255;
var b1 = rgbArr[2] / 255;
var alpha = rgbArr[3] ? rgbArr[3] : 1;

var maxColor = Math.max(r1,g1,b1);
var minColor = Math.min(r1,g1,b1);
//Calculate L:
var L = (maxColor + minColor) / 2 ;
var S = 0;
var H = 0;
if(maxColor != minColor)
//Calculate S:
if(L 0.5)
S = (maxColor - minColor) / (maxColor + minColor);
else
S = (maxColor - minColor) / (2.0 - maxColor - minColor);

//Calculate H:
if(r1 == maxColor)
H = (g1-b1) / (maxColor - minColor);
else if(g1 == maxColor)
H = 2.0 + (b1 - r1) / (maxColor - minColor);
else
H = 4.0 + (r1 - g1) / (maxColor - minColor);



L = L * 100;
S = S * 100;
H = H * 60;
if(H0)
H += 360;

var result = [H, S, L, alpha];
return result;


function hslToRgb(h, s, l, a)
var r, g, b;

if (s == 0)
r = g = b = l; // achromatic
else
function hue2rgb(p, q, t)
if (t 0) t += 1;
if (t 1) t -= 1;
if (t 1/6) return p + (q - p) * 6 * t;
if (t 1/2) return q;
if (t 2/3) return p + (q - p) * (2/3 - t) * 6;
return p;


var q = l 0.5 ? l * (1 + s) : l + s - l * s;
var p = 2 * l - q;

r = hue2rgb(p, q, h + 1/3);
g = hue2rgb(p, q, h);
b = hue2rgb(p, q, h - 1/3);

return [ r * 255, g * 255, b * 255, a];

function hexToRGB(hex, alpha)
var r, g, b;
if(hex.length 5)
r = parseInt(hex.slice(1, 2), 16),
g = parseInt(hex.slice(2, 3), 16),
b = parseInt(hex.slice(3, 4), 16);
else
r = parseInt(hex.slice(1, 3), 16),
g = parseInt(hex.slice(3, 5), 16),
b = parseInt(hex.slice(5, 7), 16);

if (alpha)
return "rgba(" + r + ", " + g + ", " + b + ", " + alpha + ")";
else
return "rgb(" + r + ", " + g + ", " + b + ")";


function parseRGB(str)
return str.replace(/[^\d,]/g, '').split(',');

function bgcToHSL(bgc, type)
var rgba, hsla;
if(type == 'hex')
rgba = hexToRGB(bgc,1);
rgba = parseRGB(bgc);
if(rgba.length == 3) rgba.push(1);

if(type == 'rgb')
rgba = parseRGB(bgc);
if(rgba.length == 3) rgba.push(1);

if(type == 'hsl')
hsla = parseRGB(bgc);
if(hsla.length == 3) hsla.push(1);

hsla = rgb2hsl(rgba);
hsla.forEach((e,i)=hsla[i] = Math.round(e););
return hsla;

function _darkit(e)

if(e.getAttribute('data-darkened')) return;
e.setAttribute('data-darkened', true);
var style = window.getComputedStyle(e);
var bgc = style.getPropertyValue('background-color');
var bgct;
var clr = style.getPropertyValue('color');
var bg = style.getPropertyValue('background-image');
if(bgc == '' bgc == 'initial' bgc == 'inherit' bgc == 'transparent') return
if(bg.indexOf('gradient') !== -1) console.log(bg);

if(bgc.indexOf('rgb') !== -1) bgct = 'rgb';
if(bgc.indexOf('hsl') !== -1) bgct = 'hsl';
if(bgc.indexOf('#') !== -1) bgct = 'hex';

var bgHsl = bgcToHSL(bgc, bgct);
//var newRgb = hslToRgb(bgHsl[0], bgHsl[1], bgHsl[2], bgHsl[3]);
var lightness = bgHsl[2] 40 ? bgHsl[2] - 20 : bgHsl[2] / 2;
var newBgc = `hsla($bgHsl[0], $bgHsl[1]%, $lightness%, $bgHsl[3])!important`;
//console.log(newBgc);
// e.style.background = 'none';
var existingStyle = e.getAttribute('style');
e.setAttribute('style', existingStyle + ';background-color:' + newBgc);
//e.style.color = '#ccc';
//e.style.borderColor = '#555';

_darkit(document.querySelector('body'));
document.querySelectorAll('body *').forEach(e=
_darkit(e);
);

document.addEventListener('DOMNodeInserted', (e)=
document.querySelectorAll('body *').forEach(e=
_darkit(e);
);
);

avatar Josh Lowery
2015-01-23

Perfectly perfect!

avatar Ajoe Alex
2019-01-31

excellent.Just What I wanted.
could be better to have a button to start injecting or stop injecting.

avatar m.ali petek
2017-10-17

Excellent. There are a lot of extensions do injection for domain. But this injects to all pages, every page. Awesome.

Here is my darkener, I just dont want to see white anymore.

function rgb2hsl(rgbArr)
var r1 = rgbArr[0] / 255;
var g1 = rgbArr[1] / 255;
var b1 = rgbArr[2] / 255;
var alpha = rgbArr[3] ? rgbArr[3] : 1;

var maxColor = Math.max(r1,g1,b1);
var minColor = Math.min(r1,g1,b1);
//Calculate L:
var L = (maxColor + minColor) / 2 ;
var S = 0;
var H = 0;
if(maxColor != minColor)
//Calculate S:
if(L 0.5)
S = (maxColor - minColor) / (maxColor + minColor);
else
S = (maxColor - minColor) / (2.0 - maxColor - minColor);

//Calculate H:
if(r1 == maxColor)
H = (g1-b1) / (maxColor - minColor);
else if(g1 == maxColor)
H = 2.0 + (b1 - r1) / (maxColor - minColor);
else
H = 4.0 + (r1 - g1) / (maxColor - minColor);



L = L * 100;
S = S * 100;
H = H * 60;
if(H0)
H += 360;

var result = [H, S, L, alpha];
return result;


function hslToRgb(h, s, l, a)
var r, g, b;

if (s == 0)
r = g = b = l; // achromatic
else
function hue2rgb(p, q, t)
if (t 0) t += 1;
if (t 1) t -= 1;
if (t 1/6) return p + (q - p) * 6 * t;
if (t 1/2) return q;
if (t 2/3) return p + (q - p) * (2/3 - t) * 6;
return p;


var q = l 0.5 ? l * (1 + s) : l + s - l * s;
var p = 2 * l - q;

r = hue2rgb(p, q, h + 1/3);
g = hue2rgb(p, q, h);
b = hue2rgb(p, q, h - 1/3);

return [ r * 255, g * 255, b * 255, a];

function hexToRGB(hex, alpha)
var r, g, b;
if(hex.length 5)
r = parseInt(hex.slice(1, 2), 16),
g = parseInt(hex.slice(2, 3), 16),
b = parseInt(hex.slice(3, 4), 16);
else
r = parseInt(hex.slice(1, 3), 16),
g = parseInt(hex.slice(3, 5), 16),
b = parseInt(hex.slice(5, 7), 16);

if (alpha)
return "rgba(" + r + ", " + g + ", " + b + ", " + alpha + ")";
else
return "rgb(" + r + ", " + g + ", " + b + ")";


function parseRGB(str)
return str.replace(/[^\d,]/g, '').split(',');

function bgcToHSL(bgc, type)
var rgba, hsla;
if(type == 'hex')
rgba = hexToRGB(bgc,1);
rgba = parseRGB(bgc);
if(rgba.length == 3) rgba.push(1);

if(type == 'rgb')
rgba = parseRGB(bgc);
if(rgba.length == 3) rgba.push(1);

if(type == 'hsl')
hsla = parseRGB(bgc);
if(hsla.length == 3) hsla.push(1);

hsla = rgb2hsl(rgba);
hsla.forEach((e,i)=hsla[i] = Math.round(e););
return hsla;

function _darkit(e)

if(e.getAttribute('data-darkened')) return;
e.setAttribute('data-darkened', true);
var style = window.getComputedStyle(e);
var bgc = style.getPropertyValue('background-color');
var bgct;
var clr = style.getPropertyValue('color');
var bg = style.getPropertyValue('background-image');
if(bgc == '' bgc == 'initial' bgc == 'inherit' bgc == 'transparent') return
if(bg.indexOf('gradient') !== -1) console.log(bg);

if(bgc.indexOf('rgb') !== -1) bgct = 'rgb';
if(bgc.indexOf('hsl') !== -1) bgct = 'hsl';
if(bgc.indexOf('#') !== -1) bgct = 'hex';

var bgHsl = bgcToHSL(bgc, bgct);
//var newRgb = hslToRgb(bgHsl[0], bgHsl[1], bgHsl[2], bgHsl[3]);
var lightness = bgHsl[2] 40 ? bgHsl[2] - 20 : bgHsl[2] / 2;
var newBgc = `hsla($bgHsl[0], $bgHsl[1]%, $lightness%, $bgHsl[3])!important`;
//console.log(newBgc);
// e.style.background = 'none';
var existingStyle = e.getAttribute('style');
e.setAttribute('style', existingStyle + ';background-color:' + newBgc);
//e.style.color = '#ccc';
//e.style.borderColor = '#555';

_darkit(document.querySelector('body'));
document.querySelectorAll('body *').forEach(e=
_darkit(e);
);

document.addEventListener('DOMNodeInserted', (e)=
document.querySelectorAll('body *').forEach(e=
_darkit(e);
);
);

avatar Josh Lowery
2015-01-23

Perfectly perfect!

avatar Ajoe Alex
2019-01-31

excellent.Just What I wanted.
could be better to have a button to start injecting or stop injecting.

Related Extensions