Beiträge von Endor
-
-
milupo.
Du verwendest die von Aris.
Funktioniert soweit. Nur finde ich nicht raus wie ich da die Schaltflächen
rein kriege. Über Symbolleiste Anpassen Fenster taucht diese Symbolleiste
nicht auf. Normal ist die am rechten Rand was ich auch möchte.
Mfg.
Endor -
Hallo milupo
So wird wenigstens die Schaltfläche zum ein und Ausblenden angezeigt.
Von der Leiste aber keine Spur.
Mfg.
Endor -
Hallo Speravir .
Danke für Deine neue Version.
Funktioniert soweit gut. Ein Hinweis:
Tastaturkürzel zum Importieren von Stilen funktioniert nur mit Alt+R.
Bei Alt+I tut sich nichts.Mfg.
Endor -
Halo zusammen.
Ich habe genau das selbe Problem seit Firefox 144 Nightly.JavaScript
Alles anzeigen(function() { /*******************************************************************************/ if (location != 'chrome://browser/content/browser.xhtml') { return; } /*******************************************************************************/ // Background Color var vb_bg_color = '#f6f6f6'; // Border Color var vb_border_color = 'rgb(0,128,0)'; // Number of columns var vb_cols = 1; // Visibility on Start var vb_visibilityOnStart = 1; // Button Icon, if Toolbar is visible vb_isVisibleImage = 'url("data:image/x-icon;base64,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")'; // Button Icon, if Toolbar is hidden vb_isHiddenImage = 'url("data:image/x-icon;base64,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")'; /*******************************************************************************/ var vb_h = window.outerHeight; var vb_minH = vb_h/20; var vb_maxH = vb_h/1; var vb_width = 40; var vb_totalwidth = vb_cols * vb_width; var vb_style = '\ box-sizing: content-box !important; \ background-color: ' + vb_bg_color + ' !important; \ min-width: ' + vb_totalwidth + 'px !important; \ max-width: ' + vb_totalwidth + 'px !important; \ min-height: ' + vb_minH + 'px !important; \ max-height: ' + vb_maxH + 'px !important; \ position: absolute !important; \ right: 17px !important; \ padding: 5px 0 !important; \ border: 2px ridge ' + vb_border_color + '; \ border-radius: 10px !important; \ z-index: 1 !important; \ '; var vb_element = document.getElementById('navigator-toolbox'); var vb_toolbar = document.createElement('toolbar'); vb_toolbar.id = 'fp-toolbar'; vb_toolbar.setAttribute('customizable', true); vb_toolbar.setAttribute('mode', 'icons'); vb_toolbar.setAttribute('style', vb_style); vb_element.appendChild( vb_toolbar ); vb_toolbar.setAttribute('collapsed', false); CustomizableUI.registerArea( 'fp-toolbar' , { legacy: true } ); CustomizableUI.registerToolbarNode(vb_toolbar); setTimeout(function(){ var tmp_positionInfo = vb_toolbar.getBoundingClientRect(); var tmp_height = tmp_positionInfo.height; var vb_ptop = ( vb_h - tmp_height ) / 2; vb_toolbar.style.top = vb_ptop + 'px'; if( vb_visibilityOnStart == 0 ) { vb_toolbar.setAttribute('collapsed', true); } }, 500); /*******************************************************************************/ try { ChromeUtils.importESModule("resource:///modules/CustomizableUI.sys.mjs"); CustomizableUI.createWidget({ id: "fp-toggle-toolbar", defaultArea: CustomizableUI.AREA_NAVBAR, removable: true, label: "Vertical Toolbar", tooltiptext: "Vertical Toolbar", onClick: function() { var node = document.getElementById('fp-toolbar'); var isCollapsed = node.getAttribute('collapsed'); if( isCollapsed == 'false' ) { node.setAttribute( 'collapsed' , 'true' ); node.style.visibility = 'collapse'; document.getElementById(this.id).style.listStyleImage = vb_isHiddenImage; } else { node.setAttribute( 'collapsed' , 'false' ); node.style.visibility = 'visible'; document.getElementById(this.id).style.listStyleImage = vb_isVisibleImage; } }, onCreated: function(aNode) { if( vb_visibilityOnStart == 1 ) { aNode.style.listStyleImage = vb_isVisibleImage; } else { aNode.style.listStyleImage = vb_isHiddenImage; } return aNode; } }); } catch (e) { Components.utils.reportError(e); }; /*******************************************************************************/ })();Verwende aber keinen zusätzlichen CSS Code.
Habt Ihr eine Idee woran es liegt?Mfg.
Endor -
aber leider nur, wenn let position = 0;!
Ja das kann ich bestätigen. Ist hier auch so.
Das könnte aber schon länger nicht mehr funktioniert haben,
Da nicht verwendet auch nie getestet.Editor im Firefox hinterlegt
Das mit dem hinterlegten Pfad ist bei einigen Scripten so gemacht.
Mich persönlich stört das nicht. Aber da hat sicher jeder seine
eigene Vorstellung darüber.
Mfg.
Endor -
Hallo Mira_Belle .
Verwendest Du den CSS Code für die Symbolleistenschaltfläche?
Den muss du deaktivieren dann steht CSS an der Stelle.Mfg.
Endor -
-
Hallo Speravir.
Dieser Tippfehler ist schon in der ersten Version dieses Scripts,
also vor 14 Jahren enthalten. Hatte sogar Aborix diesbezüglich
mal gefragt ob man das ändern müsste er sagte da spezifiziert nicht nötig.
Deine Version oben ist prima. Funktioniert soweit alles.

Eine Frage dazu noch, in unserem Original konnte man auch mit
Mittelklick auf die Schaltfläche die Stile importieren. Das geht weder
bei der von mir noch bei Deiner Version. Ließe sich das eventuell
noch einbauen. Das hatte Aborix seinerzeit auch eingefügt.Mfg.
Endor -
Kann gar nicht sein, denn er hat nur oben den Konfigurationsteil eingebaut.
Die dazu gehörenden Funktionen aber nicht. Wie soll es dann gehen?
Mfg.
Endor -
Hallo 2002Andreas.
Vielen Dank!!!
Damit funktioniert es hier auch wieder.
Klasse!!!
Mfg.
Endor -
Nein. Was fehlt steht ja im erwähnten Beitrag .
Ansonsten funktioniert das Script einwandfrei.
Funktioniert das Script extraconfigmenu.uc.js bei Dir
ohne CSP zu deaktivieren noch? Weil bei mir wird alles angezeigt
aber bei klick tut sich nichts. Egal ob mit oder ohne CSP.Mfg.
Endor -
Ab Firefox 142 das Script lädt die Stile aber bei klick im Popupmenü tut sich nichts mehr.
Bei meiner Version oben schon. -
Ja das Script ist schon sehr alt.
Wurde von vielen Leuten nur aktualisiert damit es läuft.
Griever siehe hier:
GitHub - Griever/userChromeJSContribute to Griever/userChromeJS development by creating an account on GitHub.github.comIst aber schon lange nichts mehr los da.
Er hat das Script am 23.12.2012 zuletzt aktualisiert.
Von hier habe ich die Datei runter geladen:UserCSSLoader_fx137.uc.js (UserCSSLoader_fx137.uc.js) ダウンロード | firefox用スクリプトアップローダー | uploader.jpFx137+u6.getuploader.comMfg.
Endor -
Und "Oktale Literale sind nicht zulässig. Verwenden Sie die Syntax "0o664"."
Alles Böhmische Dörfer für mich

Ich habe ja nur ein Script vom japanischen Portal
runter geladen und die Schaltfläche eingebaut, auch nur den Code
aus unserem Script an passende Stellen eingefügt usw.
Dass das überhaupt funktioniert ist für mich schon ein Wunder...
Mfg.
Endor -
Hallo Mira_Belle !
Also im Menü oben siehst auch den Eintrag zum öffnen des CSS Ordners.
Darunter sollte auch der Eintrag zum öffnen des Chrome Ordners hin. -
Hallo zusammen. Speravir , BrokenHeart , Mira_Belle, milupo , 2002Andreas
Habe eine funktionierende Version vom usercssloader.uc.js auf Basis einer
Version aus den asiatischen Tiefen gemacht.
Hat wie gehabt frei verschiebbare Schaltfläche usw. Funktioniert auch
in Firefox 143 unabhängig ob CSP aktiviert ist oder nicht.
Im Moment fehlt noch der Eintrag zum öffnen des Chromeordners
und die Möglichkeit zur Verwendung eines alternativen Dateimanagers.
Also anstelle vom Explorer zbs. den Totalcomander.
Ich habe es versucht einzubauen, durch einfügen der entsprechenden Teile
aus unserem Script, aber dann funktioniert es nicht mehr.
Vielleicht kann jemand von euch sich das mal anschauen:HTML
Alles anzeigen// ==UserScript== // @name UserCSSLoader // @description CSS-Codes - Styles laden und verwalten // @namespace http://d.hatena.ne.jp/Griever/ // @author Griever // @include main // @license MIT License // @compatibility Firefox 141+ // @charset UTF-8 // @version 0.0.4r4 // @note 0.0.4r4 prevent close menu when middleclick // @note 0.0.4r3 Fx92: getURLSpecFromFile() -> getURLSpecFromActualFile() // @note 0.0.4r2 AUTHOR_SHEET-Unterstützung hinzugefügt, wichtig: Dateiendung muss .author.css sein! // @note 0.0.4 Remove E4X // @note CSS Entry-Klasse erstellt // @note Style-Test-Funktion überarbeitet // @note Wenn die Datei gelöscht wurde, CSS beim Neu-Erstellen und Löschen des Menüs abbrechen // @note uc einlesen .uc.css temporäre Korrespondenz zum erneuten Lesen // ==/UserScript== /****** Bedienungsanleitung ****** CSS-Ordner im Chrome-Ordner erstellen, CSS-Dateien dort ablegen - speichern. Diejenigen, deren Dateiname mit "xul-" beginnen, diejenigen, die mit ".as.css" enden, sind AGENT_SHEET, alle anderen außer USER_SHEET werden gelesen. Da der Inhalt der Datei nicht überprüft wird, darauf achten, die Angabe von @namespace nicht zu vergessen! Schaltfläche wird in Navigationsleiste eingefügt Linksklick auf Stil, zum aktivieren/deaktivieren Mittelklick auf Stil zum aktivieren/deaktivieren, ohne Menü zu schließen Rechtsklick auf Stil zum Öffnen im Editor Strg+Linksklick zum Anzeigen im Dateimanager Verwenden des in "view_source.editor.path" angegebenen Editors Dateiordner kann in Konfiguration geändert werden **** Anleitung Ende ****/ (function(){ let { classes: Cc, interfaces: Ci, utils: Cu, results: Cr } = Components; // Wenn beim Start ein weiteres Fenster (zweites Fenster) vorhanden ist, beenden let list = Services.wm.getEnumerator("navigator:browser"); while(list.hasMoreElements()){ if(list.getNext() != window) return; } if (window.UCL) { window.UCL.destroy(); delete window.UCL; } const XULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; window.UCL = { USE_UC : "UC" in window, AGENT_SHEET : Ci.nsIStyleSheetService.AGENT_SHEET, USER_SHEET : Ci.nsIStyleSheetService.USER_SHEET, AUTHOR_SHEET: Ci.nsIStyleSheetService.AUTHOR_SHEET, readCSS : {}, get disabled_list() { let obj = []; try { obj = decodeURIComponent(this.prefs.getCharPref("disabled_list")).split("|"); } catch(e) {} delete this.disabled_list; return this.disabled_list = obj; }, get prefs() { delete this.prefs; return this.prefs = Services.prefs.getBranch("UserCSSLoader.") }, get styleSheetServices(){ delete this.styleSheetServices; return this.styleSheetServices = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); }, get FOLDER() { let aFolder; try { // UserCSSLoader.FOLDER verwenden let folderPath = this.prefs.getCharPref("FOLDER"); aFolder = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile) aFolder.initWithPath(folderPath); } catch (e) { aFolder = Services.dirsvc.get("UChrm", Ci.nsIFile); aFolder.appendRelativePath("CSS"); } if (!aFolder.exists() || !aFolder.isDirectory()) { aFolder.create(Ci.nsIFile.DIRECTORY_TYPE, 0664); } delete this.FOLDER; return this.FOLDER = aFolder; }, getFocusedWindow: function() { let win = document.commandDispatcher.focusedWindow; if (!win || win == window) win = content; return win; }, init: function() { const cssmenu = $C("menu", { id: "usercssloader-menu", tooltiptext: "UserCSSLoader\n\nLinksklick: Stylesheets anzeigen\nMittelklick: Styles importieren", label: "CSS", accesskey: "C" }); const menupopup = $C("menupopup", { id: "usercssloader-menupopup" }); cssmenu.appendChild(menupopup); let menu = $C("menu", { label: "Style-Loader-Menü", id: "style-loader-menu", accesskey: "y" }); menupopup.appendChild(menu); let mp = $C("menupopup", { id: "usercssloader-submenupopup" }); menu.appendChild(mp); let rebuildItem = $C("menuitem", { label: "Styles importieren", accesskey: "R", acceltext: "Alt + R", }); rebuildItem.addEventListener("command", () => UCL.rebuild()); mp.appendChild(rebuildItem); mp.appendChild($C("menuseparator")); let createCSS = $C("menuitem", { label: "CSS-Datei erstellen", accesskey: "E", }); createCSS.addEventListener("command", () => UCL.create()); mp.appendChild(createCSS); let openFolder = $C("menuitem", { label: "CSS-Ordner öffnen", accesskey: "O", }); openFolder.addEventListener("command", () => UCL.openFolder()); mp.appendChild(openFolder); let editChromeItem = $C("menuitem", { label: "userChrome.css bearbeiten", //hidden: false, }); editChromeItem.addEventListener("command", () => UCL.editUserCSS("userChrome.css")); mp.appendChild(editChromeItem); let editContentItem = $C("menuitem", { label: "userContent.css bearbeiten", //hidden: false, }); editContentItem.addEventListener("command", () => UCL.editUserCSS("userContent.css")); mp.appendChild(editContentItem); let styleTestChrome = $C("menuitem", { label: "Stil Testen (Chrome)", id: "usercssloader-test-chrome", hidden: true, accesskey: "C", }); styleTestChrome.addEventListener("command", () => UCL.styleTest("window")); mp.appendChild(styleTestChrome); let styleTest = $C("menuitem", { label: "Stil Testen(Webseiten)", id: "usercssloader-test-content", hidden: true, accesskey: "W", }); menu = $C("menu", { label: ".uc.css", accesskey: "U", hidden: !UCL.USE_UC }); menupopup.appendChild(menu); mp = $C("menupopup", { id: "usercssloader-ucmenupopup" }); menu.appendChild(mp); let UCrebuild = $C("menuitem", { label: "Importieren(.uc.js)", }); UCrebuild.addEventListener("command", () => UCL.UCrebuild()); mp.appendChild(UCrebuild); mp.appendChild($C("menuseparator", { id: "usercssloader-ucsepalator" })); CustomizableUI.createWidget({ id: 'usercssloader-menu-item', type: 'custom', defaultArea: CustomizableUI.AREA_NAVBAR, onBuild: function(aDocument) { let toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbaritem'); toolbaritem.id = 'usercssloader-menu-item'; toolbaritem.className = 'chromeclass-toolbar-additional'; return toolbaritem; } }); $('usercssloader-menu-item').appendChild(cssmenu); let key = $C("key", { id: "usercssloader-rebuild-key", key: "R", modifiers: "alt", }); key.addEventListener("command", () => UCL.rebuild()); $("mainKeyset").appendChild(key); this.rebuild(); this.initialized = true; if (UCL.USE_UC) { setTimeout(function() { UCL.UCcreateMenuitem(); }, 1000); } window.addEventListener("unload", this, false); }, uninit: function() { const dis = []; for (let x of Object.keys(this.readCSS)) { if (!this.readCSS[x].enabled) dis.push(x); } this.prefs.setCharPref("disabled_list", encodeURIComponent(dis.join("|"))); window.removeEventListener("unload", this, false); }, destroy: function() { var i = document.getElementById("usercssloader-menu"); if (i) i.parentNode.removeChild(i); var i = document.getElementById("usercssloader-rebuild-key"); if (i) i.parentNode.removeChild(i); this.uninit(); }, handleEvent: function(event) { switch(event.type){ case "unload": this.uninit(); break; } }, rebuild: function() { let ext = /\.css$/i; let not = /\.uc\.css/i; let files = this.FOLDER.directoryEntries.QueryInterface(Ci.nsISimpleEnumerator); while (files.hasMoreElements()) { let file = files.getNext().QueryInterface(Ci.nsIFile); if (!ext.test(file.leafName) || not.test(file.leafName)) continue; let CSS = this.loadCSS(file); CSS.flag = true; } for (let leafName of Object.keys(this.readCSS)) { const CSS = this.readCSS[leafName]; if (!CSS.flag) { CSS.enabled = false; delete this.readCSS[leafName]; } delete CSS.flag; this.rebuildMenu(leafName); } if (this.initialized) { if (typeof(StatusPanel) !== "undefined") StatusPanel._label = "Styles importiert"; else XULBrowserWindow.statusTextField.label = "Styles importiert"; } }, loadCSS: function(aFile) { var CSS = this.readCSS[aFile.leafName]; if (!CSS) { CSS = this.readCSS[aFile.leafName] = new CSSEntry(aFile); if (this.disabled_list.indexOf(CSS.leafName) === -1) { CSS.enabled = true; } } else if (CSS.enabled) { CSS.enabled = true; } return CSS; }, rebuildMenu: function(aLeafName) { var CSS = this.readCSS[aLeafName]; var menuitem = document.getElementById("usercssloader-" + aLeafName); if (!CSS) { if (menuitem) menuitem.parentNode.removeChild(menuitem); return; } if (!menuitem) { menuitem = $C("menuitem", { label : aLeafName, id : "usercssloader-" + aLeafName, class : "usercssloader-item " + (CSS.SHEET == this.AGENT_SHEET? "AGENT_SHEET" : CSS.SHEET == this.AUTHOR_SHEET? "AUTHOR_SHEET": "USER_SHEET"), type : "checkbox", autocheck : "false", }); menuitem.addEventListener("command", () => { UCL.toggle(aLeafName); }); menuitem.addEventListener("mouseup", (event) => { if (event.button === 1) event.preventDefault(); }); menuitem.addEventListener("click", (event) => { UCL.itemClick(event); }); document.getElementById("usercssloader-menupopup").appendChild(menuitem); } menuitem.setAttribute("checked", CSS.enabled); }, toggle: function(aLeafName) { var CSS = this.readCSS[aLeafName]; if (!CSS) return; CSS.enabled = !CSS.enabled; this.rebuildMenu(aLeafName); }, itemClick: function(event) { if (event.button == 0) return; event.preventDefault(); event.stopPropagation(); let label = event.currentTarget.getAttribute("label"); if (event.button == 1) { this.toggle(label); } else if (event.button == 2) { closeMenus(event.target); this.edit(this.getFileFromLeafName(label)); } }, getFileFromLeafName: function(aLeafName) { let f = this.FOLDER.clone(); f.QueryInterface(Ci.nsIFile); // use appendRelativePath f.appendRelativePath(aLeafName); return f; }, styleTest: function(aWindow) { aWindow || (aWindow = this.getFocusedWindow()); new CSSTester(aWindow, function(tester){ if (tester.saved) UCL.rebuild(); }); }, openFolder: function() { this.FOLDER.launch(); }, editUserCSS: function(aLeafName) { let file = Services.dirsvc.get("UChrm", Ci.nsIFile); file.appendRelativePath(aLeafName); this.edit(file); }, edit: function(aFile) { var editor = Services.prefs.getCharPref("view_source.editor.path"); if (!editor) return alert("Unter about:config den vorhandenen Schalter:\n view_source.editor.path mit dem Editorpfad ergänzen"); try { var UI = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter); UI.charset = window.navigator.platform.toLowerCase().indexOf("win") >= 0? "Shift_JIS": "UTF-8"; var path = UI.ConvertFromUnicode(aFile.path); var app = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); app.initWithPath(editor); var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); process.init(app); process.run(false, [path], 1); } catch (e) {} }, create: function(aLeafName) { if (!aLeafName) aLeafName = prompt("Name des Styles", dateFormat(new Date(), "%Y_%m%d_%H%M%S")); if (aLeafName) aLeafName = aLeafName.replace(/\s+/g, " ").replace(/[\\/:*?\"<>|]/g, ""); if (!aLeafName || !/\S/.test(aLeafName)) return; if (!/\.css$/.test(aLeafName)) aLeafName += ".css"; let file = this.getFileFromLeafName(aLeafName); this.edit(file); }, UCrebuild: function() { let re = /^file:.*\.uc\.css(?:\?\d+)?$/i; let query = "?" + new Date().getTime(); Array.slice(document.styleSheets).forEach(function(css){ if (!re.test(css.href)) return; if (css.ownerNode) { css.ownerNode.parentNode.removeChild(css.ownerNode); } let pi = document.createProcessingInstruction('xml-stylesheet','type="text/css" href="'+ css.href.replace(/\?.*/, '') + query +'"'); document.insertBefore(pi, document.documentElement); }); UCL.UCcreateMenuitem(); }, UCcreateMenuitem: function() { let sep = $("usercssloader-ucsepalator"); let popup = sep.parentNode; if (sep.nextSibling) { let range = document.createRange(); range.setStartAfter(sep); range.setEndAfter(popup.lastChild); range.deleteContents(); range.detach(); } let re = /^file:.*\.uc\.css(?:\?\d+)?$/i; Array.slice(document.styleSheets).forEach(function(css) { if (!re.test(css.href)) return; let fileURL = decodeURIComponent(css.href).split("?")[0]; let aLeafName = fileURL.split("/").pop(); let m = $C("menuitem", { label : aLeafName, tooltiptext : fileURL, id : "usercssloader-" + aLeafName, type : "checkbox", autocheck : "false", checked : "true", }); m.css = css; m.addEventListener("command", function() { this.setAttribute("checked", !(this.css.disabled = !this.css.disabled)); }); m.addEventListener("mouseup", function(event) { if (event.button === 1) event.preventDefault(); }); m.addEventListener("click", function(event) { UCL.UCItemClick(event); }); popup.appendChild(m); }); }, UCItemClick: function(event) { if (event.button == 0) return; event.preventDefault(); event.stopPropagation(); if (event.button == 1) { event.target.doCommand(); } else if (event.button == 2) { closeMenus(event.target); let fileURL = event.currentTarget.getAttribute("tooltiptext"); let file = Services.io.getProtocolHandler("file").QueryInterface(Ci.nsIFileProtocolHandler).getFileFromURLSpec(fileURL); this.edit(file); } }, }; function CSSEntry(aFile) { this.path = aFile.path; this.leafName = aFile.leafName; this.lastModifiedTime = 1; this.SHEET = /^xul-|\.as\.css$/i.test(this.leafName) ? Ci.nsIStyleSheetService.AGENT_SHEET: /\.author\.css$/i.test(this.leafName)? Ci.nsIStyleSheetService.AUTHOR_SHEET: Ci.nsIStyleSheetService.USER_SHEET; } CSSEntry.prototype = { sss: Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService), _enabled: false, get enabled() { return this._enabled; }, set enabled(isEnable) { var aFile = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile) aFile.initWithPath(this.path); var isExists = aFile.exists(); // true, wenn die Datei bereits existiert var lastModifiedTime = isExists ? aFile.lastModifiedTime : 0; var isForced = this.lastModifiedTime != lastModifiedTime; //true, wenn es eine Änderung in der Datei gibt var fileURL = Services.io.getProtocolHandler("file").QueryInterface(Ci.nsIFileProtocolHandler).getURLSpecFromActualFile(aFile); var uri = Services.io.newURI(fileURL, null, null); if (this.sss.sheetRegistered(uri, this.SHEET)) { // Wenn diese Datei bereits gelesen wurde if (!isEnable || !isExists) { this.sss.unregisterSheet(uri, this.SHEET); } else if (isForced) { // Nach Stornierung erneut einlesen this.sss.unregisterSheet(uri, this.SHEET); this.sss.loadAndRegisterSheet(uri, this.SHEET); } } else { // Datei wurde nicht gelesen if (isEnable && isExists) { this.sss.loadAndRegisterSheet(uri, this.SHEET); } } if (this.lastModifiedTime !== 1 && isEnable && isForced) { log(this.leafName + " wurde aktualisiert"); } this.lastModifiedTime = lastModifiedTime; return this._enabled = isEnable; }, }; function CSSTester(aWindow, aCallback) { this.win = aWindow || window; this.doc = this.win.document; this.callback = aCallback; this.init(); } CSSTester.prototype = { sss: Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService), preview_code: "", saved: false, init: function() { this.dialog = openDialog( "data:text/html;charset=utf8,"+encodeURIComponent('<!DOCTYPE HTML><html lang="ja"><head><title>CSSTester</title></head><body></body></html>'), "", "width=550,height=400,dialog=no"); this.dialog.addEventListener("load", this, false); }, destroy: function() { this.preview_end(); this.dialog.removeEventListener("unload", this, false); this.previewButton.removeEventListener("click", this, false); this.saveButton.removeEventListener("click", this, false); this.closeButton.removeEventListener("click", this, false); }, handleEvent: function(event) { switch(event.type) { case "click": if (event.button != 0) return; if (this.previewButton == event.currentTarget) { this.preview(); } else if (this.saveButton == event.currentTarget) { this.save(); } else if (this.closeButton == event.currentTarget) { this.dialog.close(); } break; case "load": var doc = this.dialog.document; doc.body.innerHTML = '\ <style type="text/css">\ :not(input):not(select) { padding: 0px; margin: 0px; }\ table { border-spacing: 0px; }\ body, html, #main, #textarea { width: 100%; height: 100%; }\ #textarea { font-family: monospace; }\ </style>\ <table id="main">\ <tr height="100%">\ <td colspan="4"><textarea id="textarea"></textarea></td>\ </tr>\ <tr height="40">\ <td><input type="button" value="Preview" /></td>\ <td><input type="button" value="Save" /></td>\ <td width="80%"><span class="log"></span></td>\ <td><input type="button" value="Close" /></td>\ </tr>\ </table>\ '; this.textbox = doc.querySelector("textarea"); this.previewButton = doc.querySelector('input[value="Preview"]'); this.saveButton = doc.querySelector('input[value="Save"]'); this.closeButton = doc.querySelector('input[value="Close"]'); this.logField = doc.querySelector('.log'); var code = "@namespace url(" + this.doc.documentElement.namespaceURI + ");\n"; code += this.win.location.protocol.indexOf("http") === 0? "@-moz-document domain(" + this.win.location.host + ") {\n\n\n\n}": "@-moz-document url(" + this.win.location.href + ") {\n\n\n\n}"; this.textbox.value = code; this.dialog.addEventListener("unload", this, false); this.previewButton.addEventListener("click", this, false); this.saveButton.addEventListener("click", this, false); this.closeButton.addEventListener("click", this, false); this.textbox.focus(); let p = this.textbox.value.length - 3; this.textbox.setSelectionRange(p, p); break; case "unload": this.destroy(); this.callback(this); break; } }, preview: function() { var code = this.textbox.value; if (!code || !/\:/.test(code)) return; code = "data:text/css;charset=utf-8," + encodeURIComponent(this.textbox.value); if (code == this.preview_code) return; this.preview_end(); var uri = Services.io.newURI(code, null, null); this.sss.loadAndRegisterSheet(uri, Ci.nsIStyleSheetService.AGENT_SHEET); this.preview_code = code; this.log("Preview"); }, preview_end: function() { if (this.preview_code) { let uri = Services.io.newURI(this.preview_code, null, null); this.sss.unregisterSheet(uri, Ci.nsIStyleSheetService.AGENT_SHEET); this.preview_code = ""; } }, save: function() { var data = this.textbox.value; if (!data) return; var fp = Cc["@mozilla.org/filepicker;1"].createInstance(Ci.nsIFilePicker); fp.init(window, "", Ci.nsIFilePicker.modeSave); fp.appendFilter("CSS Files","*.css"); fp.defaultExtension = "css"; if (window.UCL) fp.displayDirectory = UCL.FOLDER; var res = fp.show(); if (res != fp.returnOK && res != fp.returnReplace) return; var suConverter = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter); suConverter.charset = "UTF-8"; data = suConverter.ConvertFromUnicode(data); var foStream = Cc["@mozilla.org/network/file-output-stream;1"].createInstance(Ci.nsIFileOutputStream); foStream.init(fp.file, 0x02 | 0x08 | 0x20, 0664, 0); foStream.write(data, data.length); foStream.close(); this.saved = true; }, log: function() { this.logField.textContent = dateFormat(new Date(), "%H:%M:%S") + ": " + $A(arguments); } }; UCL.init(); function $(id) { return document.getElementById(id); } function $A(arr) { return Array.slice(arr); } function $C(name, attr) { const el = document.createElementNS(XULNS, name); if (attr) Object.keys(attr).forEach(function(n) { el.setAttribute(n, attr[n]) }); return el; } function dateFormat(date, format) { format = format.replace("%Y", ("000" + date.getFullYear()).substr(-4)); format = format.replace("%m", ("0" + (date.getMonth()+1)).substr(-2)); format = format.replace("%d", ("0" + date.getDate()).substr(-2)); format = format.replace("%H", ("0" + date.getHours()).substr(-2)); format = format.replace("%M", ("0" + date.getMinutes()).substr(-2)); format = format.replace("%S", ("0" + date.getSeconds()).substr(-2)); return format; } function log(mes) { console.log(mes); } })();Hoffe jemand von euch kann da weiter helfen.
CSS Code für Schaltfläche:
CSS
Alles anzeigen@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul); @-moz-document url(chrome://browser/content/browser.xhtml){ #usercssloader-menu { appearance:none!important; margin-right: 0px !important; margin-left: 1px !important; min-width: 18px !important; background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8%2F9hAAADJklEQVR4Xi3Pb0yVdRjG8e%2Fze57ncDrAOWwRhDQ7xYAMlAgIBW2txaio5TvMzZa68oWtzRdKbXbIpWyOzcWLWqXkFjUtsIksW72wuTVx%2BEJHCxhkSCNoKLYDwuH8e66eNV98dr24t%2Fu%2BLwsAoKsucqg4tFS4kiTtge4PFAkRksADGdsyua4JXJ7ITH0yQw%2BABTB3sHGipGNjJX8MgzGw6oEBQi5kPYinQBYEbDDAX5PEulJXPhqn2bQE2Fayfa2S8THOfu%2FwzTkDzmOQV8nAkOHMoIFgmS9K3w%2Fi5DmP1fwqdrbRFIR6euqJ6btc2Y4jsGWM0emOWrU2FAtQRTSiid7n9EJtkQCVlebrUle9lnuLVA3v09%2FG8diLCFxp%2BDVprF2a2KHqsrACtqVbQy9L8T2qq4goaKOpz5uka22Kn1yn2gBHOPMSx9o3obJokbS8R%2Fp3txTfK918Q%2B2tjwrQYPcWaW6Xdj5fKkB9B2uks%2Bv1VICYSWXQjia4eWuB8z2%2F0%2F%2FpGMMD04yP3qFzfzXBoE3sszGmR27Tubuc3KDDsf4ZsME2iO4GjuqXQh1orxDwv1OxBsX2VQlQcWGObnzdog%2F3bhCg0uIHNPLFVqnf%2F8DlA2ctDSTgxNFnOHFgE7jAg7kQcjnS8TRgQcCiprGQzncrIZ0i%2Fu0so7lLODlgsh6QSMNCAix8BhJJNH6b5NwyFNhwLwWuB%2FNxEoemudi9wMT8Cq4LBrDwgLUULK%2FBPR9%2BjC4ytPUC17%2F8DR6CpYEplt%2BeJTX7OH9HbEL5NvKwjGvj4AHprC8DSZ%2B%2FzHJgI%2BuI%2BxdvbL9E%2BJRLJr%2BSr5LXKd8foqY8QjqN7fxzlzhaAy8LGYHnQTxJ3hNhFlptCi4XsP7PEoaD4mr4KlveeZjNG4qYvDbKyipJolCXOI70U630Y6uvRfrZzyuvSKOvavK9Kp2OFqv3zagWLzb7s21aubBZ519HFjzrg8NP8utbu2hWMIyyHpYBYwyOa2Hn2cwuJAiHAthp%2Be087s4n6e5LjwzeodECAKiAffk5PJLOkJKFACzLZ8B27jfMYgUM7mKSuzPwMcB%2F6Jh%2FV5xUni0AAAAASUVORK5CYII%3D") no-repeat !important; background-position:1px 6px!important; } #usercssloader-menu:hover { appearance:none !important; margin-left: 1px !important; margin-right: 0px !important; background: #E3E3E3 url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8%2F9hAAADJklEQVR4Xi3Pb0yVdRjG8e%2Fze57ncDrAOWwRhDQ7xYAMlAgIBW2txaio5TvMzZa68oWtzRdKbXbIpWyOzcWLWqXkFjUtsIksW72wuTVx%2BEJHCxhkSCNoKLYDwuH8e66eNV98dr24t%2Fu%2BLwsAoKsucqg4tFS4kiTtge4PFAkRksADGdsyua4JXJ7ITH0yQw%2BABTB3sHGipGNjJX8MgzGw6oEBQi5kPYinQBYEbDDAX5PEulJXPhqn2bQE2Fayfa2S8THOfu%2FwzTkDzmOQV8nAkOHMoIFgmS9K3w%2Fi5DmP1fwqdrbRFIR6euqJ6btc2Y4jsGWM0emOWrU2FAtQRTSiid7n9EJtkQCVlebrUle9lnuLVA3v09%2FG8diLCFxp%2BDVprF2a2KHqsrACtqVbQy9L8T2qq4goaKOpz5uka22Kn1yn2gBHOPMSx9o3obJokbS8R%2Fp3txTfK918Q%2B2tjwrQYPcWaW6Xdj5fKkB9B2uks%2Bv1VICYSWXQjia4eWuB8z2%2F0%2F%2FpGMMD04yP3qFzfzXBoE3sszGmR27Tubuc3KDDsf4ZsME2iO4GjuqXQh1orxDwv1OxBsX2VQlQcWGObnzdog%2F3bhCg0uIHNPLFVqnf%2F8DlA2ctDSTgxNFnOHFgE7jAg7kQcjnS8TRgQcCiprGQzncrIZ0i%2Fu0so7lLODlgsh6QSMNCAix8BhJJNH6b5NwyFNhwLwWuB%2FNxEoemudi9wMT8Cq4LBrDwgLUULK%2FBPR9%2BjC4ytPUC17%2F8DR6CpYEplt%2BeJTX7OH9HbEL5NvKwjGvj4AHprC8DSZ%2B%2FzHJgI%2BuI%2BxdvbL9E%2BJRLJr%2BSr5LXKd8foqY8QjqN7fxzlzhaAy8LGYHnQTxJ3hNhFlptCi4XsP7PEoaD4mr4KlveeZjNG4qYvDbKyipJolCXOI70U630Y6uvRfrZzyuvSKOvavK9Kp2OFqv3zagWLzb7s21aubBZ519HFjzrg8NP8utbu2hWMIyyHpYBYwyOa2Hn2cwuJAiHAthp%2Be087s4n6e5LjwzeodECAKiAffk5PJLOkJKFACzLZ8B27jfMYgUM7mKSuzPwMcB%2F6Jh%2FV5xUni0AAAAASUVORK5CYII%3D") no-repeat !important; background-position:1px 6px!important; } #usercssloader-menu > .menu-text, #usercssloader-menu > .menu-right { display: none !important; } } -
Hallo milupo.
Auch von mir alles alles Gute zum Geburtstag!!!
Viel Gesundheit, Glück und Wohlergehen wünsche ich Dir
von ganzen Herzen. Bleib gesund und lass dich feiern.
Mfg.
Endor -
Siehe meine edits oben.
Mfg.
Endor -
Das Skript funktioniert nicht,
Funktioniert es überhaupt nicht oder nur nicht so wie du es möchtest?
Edit: habe es eben selbst getestet, ja leider funktioniert es nicht mehr.
Werde dem Autor mal Bescheid geben.Edit2:
Erledigt:
privatetabs.uc.js not works in Firefox 141 · Issue #121 · aminomancer/uc.css.jsHi. Your script privateTabs.uc.js not works at all in Firefox 141. https://github.com/aminomancer/uc.css.js/blob/master/JS/privateTabs.uc.js Line 65: This file…github.comMfg.
Endor