mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-08-15 08:53:07 +09:00
94 lines
2.6 KiB
JavaScript
94 lines
2.6 KiB
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
(function() {
|
|
"use strict";
|
|
|
|
if (!window.__firefox__) {
|
|
Object.defineProperty(window, '__firefox__', {
|
|
enumerable: false,
|
|
configurable: false,
|
|
writable: false,
|
|
value: {}
|
|
});
|
|
}
|
|
|
|
Object.defineProperty(window.__firefox__, 'NoImageMode', {
|
|
enumerable: false,
|
|
configurable: false,
|
|
writable: false,
|
|
value: { enabled: false }
|
|
});
|
|
|
|
var className = "__firefox__NoImageMode";
|
|
|
|
function initializeStyleSheet () {
|
|
var noImageCSS = "*{background-image:none !important;}img,iframe{visibility:hidden !important;}";
|
|
var newCss = document.getElementById(className);
|
|
if (!newCss) {
|
|
var cssStyle = document.createElement("style");
|
|
cssStyle.type = "text/css";
|
|
cssStyle.id = className;
|
|
cssStyle.appendChild(document.createTextNode(noImageCSS));
|
|
document.documentElement.appendChild(cssStyle);
|
|
} else {
|
|
newCss.innerHTML = noImageCSS;
|
|
}
|
|
}
|
|
|
|
Object.defineProperty(window.__firefox__.NoImageMode, 'setEnabled', {
|
|
enumerable: false,
|
|
configurable: false,
|
|
writable: false,
|
|
value: function(enabled) {
|
|
if (enabled === window.__firefox__.NoImageMode.enabled) {
|
|
return;
|
|
}
|
|
window.__firefox__.NoImageMode.enabled = enabled;
|
|
if (enabled) {
|
|
initializeStyleSheet();
|
|
return;
|
|
}
|
|
|
|
// Disable no image mode //
|
|
|
|
// It would be useful to also revert the changes we've made, rather than just to prevent any more images from being loaded
|
|
var style = document.getElementById(className);
|
|
if (style) {
|
|
style.remove();
|
|
}
|
|
|
|
[].slice.apply(document.getElementsByTagName('img')).forEach(function(el) {
|
|
var src = el.src;
|
|
el.src = '';
|
|
el.src = src;
|
|
});
|
|
|
|
[].slice.apply(document.querySelectorAll('[style*="background"]')).forEach(function(el) {
|
|
var backgroundImage = el.style.backgroundImage;
|
|
el.style.backgroundImage = 'none';
|
|
el.style.backgroundImage = backgroundImage;
|
|
});
|
|
|
|
[].slice.apply(document.styleSheets).forEach(function(styleSheet) {
|
|
[].slice.apply(styleSheet.rules || []).forEach(function(rules) {
|
|
var style = rules.style;
|
|
if (!style) {
|
|
return;
|
|
}
|
|
|
|
var backgroundImage = style.backgroundImage;
|
|
style.backgroundImage = 'none';
|
|
style.backgroundImage = backgroundImage;
|
|
});
|
|
});
|
|
}
|
|
});
|
|
|
|
window.addEventListener("DOMContentLoaded", function (event) {
|
|
window.__firefox__.NoImageMode.setEnabled(window.__firefox__.NoImageMode.enabled);
|
|
});
|
|
|
|
})();
|
|
|