Oh, ich war sicher, auch DAS probiert zu haben. :-/ Möglicherweise wurde da im entscheidenden Moment mal wegen eines Hängers beim Beenden der Cache nicht geleert? Jetzt flutscht's jedenfalls wie 'ne Eins. DANKE!! Hast Du evtl. noch eine Lösung, um die usercontent.css (nicht) einzulesen, ohne Firefox neu zu starten? Hier mal mein derzeitiges Script (bewußt minimalistisch):
// uc_rename.uc.js
// userContent.css umenennen
(function() {
if (location != 'chrome://browser/content/browser.xhtml')
return;
try {
CustomizableUI.createWidget({
id: 'toolbar-button-ucr',
type: 'custom',
defaultArea: CustomizableUI.AREA_NAVBAR,
onBuild: function(aDocument) {
var button = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
var css = Services.dirsvc.get('UChrm', Ci.nsIFile);
css.append('userContent.css');
var attributes = {
id: 'toolbar-button-ucr',
class: 'toolbarbutton-1 chromeclass-toolbar-additional',
removable: 'true',
label: 'userContent.css',
tooltiptext: css.exists() ? 'userContent.css aktiviert' : 'userContent.css deaktiviert',
oncommand: '(' + onCommand.toString() + ')()'
};
for (var a in attributes) {
button.setAttribute(a, attributes[a]);
};
function onCommand() {
var nocss = false;
var css = Services.dirsvc.get('UChrm', Ci.nsIFile);
css.append('userContent.css');
var css2 = Services.dirsvc.get('UChrm', Ci.nsIFile);
if (css.exists()) css.moveTo(css2,'userContent.temp')
else {
nocss = true;
css = Services.dirsvc.get('UChrm', Ci.nsIFile);
css.append('userContent.temp');
css.moveTo(css2,'userContent.css')
};
var windows = Services.wm.getEnumerator('navigator:browser');
while (windows.hasMoreElements()) {
let button = windows.getNext().document.getElementById('toolbar-button-ucr');
if (nocss)
button.setAttribute('tooltiptext', 'userContent.css aktiviert');
else
button.setAttribute('tooltiptext', 'userContent.css deaktiviert');
};
};
return button;
}
});
} catch(e) { };
var css =
'#toolbar-button-ucr[tooltiptext="userContent.css aktiviert"] {list-style-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAASCAYAAABSO15qAAABRUlEQVQ4jaXSLW/CUBTG8YdMTmxijiY1M62A8w2omZ1jlhA0mC6ZJTiSKewsDgesohgICWLjQ0DCkvJOPeGZGG3Xji50O8kvueeKv7kX+JorAFkAuRh3AATADYALnJjsfD5nHMuySJKFQuHxGElFA7nFYsE4XoAkdV1/AHAdjeRWqxXjtNttfp9MJnMP4DIUWK/XjDMYDBgdALehwHa7ZZzpdMrhcMhut0vbtmnbNgEYocBut2MSx9cJAq7rMokgYI6ZMt/+BOaYgDnmy7vr8+ac3Q80RhuWOw5JstxxfL/tjdEmCNT7SxZbM5JksTULid55e72/DALVnsN8c0KSzDcnP0TvSbLac4LA0+uHz5vo+dTuB/7F+wf7/Z5J+P9ARAxFUSqHw4FJKIpSEREDImJomlZSVbWWTqefz6Gqak3TtJKIGJ86u+Qm3Nb2fAAAAABJRU5ErkJggg==");}' +
'#toolbar-button-ucr[tooltiptext="userContent.css deaktiviert"] {list-style-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAASCAIAAADdWck9AAAACXBIWXMAAAsSAAALEgHS3X78AAADfUlEQVQoFQFyA438AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADp6enp6enp6enp6enp6enp6enp6em2trb///9fX18AAAAAAAAAAAAAAAACAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAoKCgKioqAAAAAAAAAAAAAgAAAAAAAAICAgICAgICAgICAgICAgICAgICAvz8/AAAAAAAANXV1S4uLgAAAAAAAAQAAAAAAAABAQEAAAAAAAAAAAAAAAAAAAAAAAAPDw8AAAAAAAAAAADR0dEBAQEAAAABAAAAAAAA7+/vEBERAAAA8O/vAAAAAAAAAAAA8vLy4uLi8fHxS0xMAAAAAQAAAAAAAQAAAAAAAPDw8A8QEAAAAAAAAPHw8AAAAAAAAAAAAAAAAA8QEAAAAAAAAAEAAAAAAAIAAAAAAAABAQHy8fEAAAAAAAAPEBABAQEBAQEBAQEPEBAAAAAAAADy8fEAAAAAAAABAHPMAQD+AAAAAAAAAAAA/o02AAAAAAAAAnPK/o02AAAAAAAAAnPKAAAAAAAA/wACAABzzJvL8ZvL8ZvL8f////////8AAP8AAP8AAP8AAP8AAJvL8f///////5vL8QBzzAQAAAD3+/3b7fqSTBdutOkAAAAAs+iSTRgAAAAAAABus+iSNA5utOkAAAAlEwYAAAACAAAA9/r99Pj8AAAA9Pj89Pj89Pj8AAAAAAAAAAAA9Pj8YqzlkkwX9Pj89/r9AAAAAgAAAPf7/fT5/AAAAPT5/PT5/J5VHAAAAAAAAAAAAJ5VHPT5/Fal4Z5UG/f7/QAAAAQAAAD3+v0iEQV4tuaqWx8AAQEAAAAAAAAA//8AAQEAAACqXCAA//94tuYAAAAAAAABAHPMAAAAAAAAAAAA/400AAAAAAAAAXPMAAAAAAAA/400AAAAAAAAAXPMAAAAAAAAAQAAAAAAAPz8/AMEBAAAAAAAAP38/AAAAAAAAAAAAAAAAAMEBAAAAAAAAAEAAAAAAAQwMDDs7OwCAgIAAAAAAAD//v4CAAAAAAAAAAAAAAAAAAD//v4BAgIAAAAcHBwUFBQBMDAw+fn59vb2/Pz8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQECgoKBwcHJbHXn8x89sMAAAAASUVORK5CYII=");}';
var stylesheet = document.createProcessingInstruction('xml-stylesheet', 'type="text/css" href="data:text/css;utf-8,' + encodeURIComponent(css) + '"');
document.insertBefore(stylesheet, document.documentElement);
})();
Alles anzeigen