Fügt mal einen Text ein und macht Code daraus! ![]()
Schwups und weg ist er.
Fügt mal einen Text ein und macht Code daraus! ![]()
Schwups und weg ist er.
Also Vorschlag zur Güte!
Mach erst einmal genaue Angaben, a. welchen Firefox und welche Version Du nutzt.
b. Welches Betriebssystem? Windows 3.11, oder neuer? Windows XP, 7, 8, 8.1, 10 oder 11.
Und dann wäre es sehr, sehr hifreich, wenn Du auch eine Page angibst, wo DU genau das von Dir
beschriebene Problem auftritt.
Und ganz, ganz doll wäre es auch, wenn dann Fragen beantwortet werden!!
Nutzt Du uBlock oder meintest Du uBlock Origin?
Und bevor Du das alles nicht befolgt hast, hoffe ich, antwortet Dir keiner mehr.
Ich komme noch mal auf eine vergangene Aussage meinerseits zurück.
Wäre es nicht besser den ganzen Krempel über Bord zu werfen
und dann solche Anpassungen neu zu machen.
Alle Schlag lang geht irgendwas nicht mehr!
Verstehe ich nicht.
Seit ich "meine" CSS geschrieben habe, und das ist schon eine Weile her,
funktioniert sie, und zwar genauso wie gewünscht und
ich habe da auch bisher nicht weiter daran herumschrauben müssen.
Ich wollte auch grad mal testen, aber beim mir funkt das Script nicht mehr.
Hier das Script:
JavaScript Alles anzeigen// ==UserScript== // @name BackupProfile.uc.js // @namespace BackupProfile.github.com // @description Schaltfläche zum Sichern des Firefoxprofils // @charset UTF-8 // @author ywzhaiqi、defpt // @version v2018.01.10 // @note Vorlage Script von ywzhaiqi // @note Sicherungsdatei enthaelt auch Profilname (v2017.12.23); Ersatz veralteter Funktionen (v2017.12.28b) // @reviewURL http://bbs.kafan.cn/thread-1758785-1-1.html (function () { Components.utils.import("resource:///modules/CustomizableUI.jsm"); CustomizableUI.createWidget({ id : "Backup-button", ...Kann evtl. jemand testen und sagen warum es nicht mehr funkt? Das letzte mal hat es am FirefoxProfile 21.07.2023 um 13∶57.zip geklappt. Danach habe ich es bis heute nicht gebraucht.
Ändere doch mal in Zeile 12
Components.utils.import("resource:///modules/CustomizableUI.jsm");
in
Components.utils.import("resource:///modules/CustomizableUI.sys.mjs");
und berichte.
Alles anzeigenDen Test verstehe ich jetzt nicht!
Ich habe für dein Skript und ein anderes Skript das gleiche Icon verwendet.
Beide dann mal nebeneinander geschoben.
Dadurch kann man erkennen, beide Icons sind gleich groß.
Dein Skript nutzt eine andere Pfaderkennung als mein 2tes.
Also kann es auf jeden Fall nicht am Skript selber liegen.
Ach so!
Das hatte ich auch schon getestet, daher meine Vermutung, dass es an "seinen" Anpassungen liegen könnte.
Denn hat er in seinem CSS-Code eines Buttons die Größe festgelegt, dann ändert sich die Größe nicht,
wenn er die Symbolgröße im Skript ändert.
Hat er für eben genau jene zwei Buttons die Größe nicht fest gemacht, dann verhält es sich genau so, wie von ihm beschrieben.
Ich habe jetzt mal für 2 Skripte das gleiche Icon genommen.
Das eine Skript ist das hier aus diesem Thread.
Beide Icons sind gleich groß:
Es kann also nicht am Skript selber liegen
Den Test verstehe ich jetzt nicht!
Eventuell muss ich mal aufstehen, weil ich auf der Leitung sitze. ![]()
Vielleicht hilft es ja auch die Größe der Buttons festzutackern?
#nav-bar .toolbarbutton-1,
#toolbar-menubar .toolbarbutton-1 {
margin: 2px 3px 3px!important;
min-height: 30px !important;
max-height: 30px !important;
min-width: 30px !important;
max-width: 30px !important;
Nur so ein Gedanke.
Was mich nur wundert, warum ist das nur bei 2 Skripten so
FuchsFan verwendet ja auch eigenen CSS-Code zum Anpassen der Buttons.
Eventuell liegt da die Ursache.
Wie ich schon schrieb, bei mir werden ALLE Buttons per eigene CSS angesprochen und verändert.
Wenn ich in irgendeinem Skript per CSS das Symbol in der Größe ändere,
bleiben die Buttons so wie sie in ihrer Größe und Aussehen in der CSS festgelegt wurden!
Das habe ich alles schon durch, Icons gewechselt, Größe gewechselt, Format gewechselt, nichts da.
Wir machen es jetzt so, ich bedanke mich für Euren Einsatz, und wir lassen es dabei bewenden. Da machen wir doch wegen dieser Kleinigkeit kein Drama draus. Einverstanden?
Och nö, Dramen sind doch so fesselnd.
Hier mal ein aktuelleres Bildchen.
Ganz rechts, der bunte Pfeil ist vergrößert.
Meine sind auch nicht alle gleich.
Stimmt, aber so ist es ja bei mir auch, trotzdem passen sie sich den Button an, bis auf diese zwei Scripte.
Nein, ich meinte mit einem anderen Icon.
Kann nehmen was ich will, es ändert sich nicht.
Ich habe folgendes CSS
#home-button, #forward-button, #back-button {
fill: #FFA500 !important;
}
#nav-bar .toolbarbutton-1,
#toolbar-menubar .toolbarbutton-1 {
margin: 2px 3px 3px!important;
min-height: 30px !important;
max-height: 30px !important;
min-width: 30px !important;
max-width: 30px !important;
/* border-radius: 50% !important; */
border-radius: 50% !important;
background-position: center !important;
background: linear-gradient(155deg, rgba(0, 0, 0, 0.25), rgba(255, 255, 255, 0.25) );
box-shadow: -1px -1px 2px rgba(255,255,255, 0.25), 2px 2px 2px rgba(0, 0, 0, 0.25);
filter: contrast(110%) brightness(90%) !important;
transition: filter 0.33s, box-shadow 0.33s !important;
}
#nav-bar .toolbarbutton-1:hover:not([disabled="true"]),
#toolbar-menubar .toolbarbutton-1:hover:not([disabled="true"]) {
filter: contrast(120%) brightness(100%) !important;
}
#nav-bar .toolbarbutton-1:hover:not([disabled="true"]):active:not([disabled="true"]),
#toolbar-menubar .toolbarbutton-1:hover:not([disabled="true"]):active:not([disabled="true"]) {
/* border-radius: 50% !important; */
border-radius: 50% !important;
background: linear-gradient(145deg, rgba(0,0,0,.5), rgba(48,48,48,.5), rgba(108,108,108,0.5) ) !important;
box-shadow: 0px 0px 1px rgba(255,255,255,.25) !important;
}
#nav-bar .toolbarbutton-1 .toolbarbutton-icon,
#toolbar-menubar .toolbarbutton-1 .toolbarbutton-icon,
#nav-bar .toolbarbutton-1 .toolbarbutton-badge-stack,
#toolbar-menubar .toolbarbutton-1 .toolbarbutton-badge-stack {
background: transparent !important;
/* fill: rgba(220,220,220,1) !important; */
filter: drop-shadow( 1px 1px 1px rgba(25,25,25,.75)) !important;
transition: fill 0.33s, filter 0.33s, transform .33s !important;
}
#nav-bar .toolbarbutton-1:not([open]):hover:not([disabled="true"]) .toolbarbutton-icon,
#toolbar-menubar .toolbarbutton-1:not([open]):hover:not([disabled="true"]) .toolbarbutton-icon,
#nav-bar .toolbarbutton-1:not([open]):hover:not([disabled="true"]) .toolbarbutton-badge-stack
#toolbar-menubar .toolbarbutton-1:not([open]):hover:not([disabled="true"]) .toolbarbutton-badge-stack {
/* fill: rgba(255,255,255,1) !important; */
filter: drop-shadow( 1px 1px 1px rgba(25,25,25,1.00)) drop-shadow( -1px -1px 3px rgba(200,200,200, 0.5)) brightness(120%) !important;
transition: fill 0.33s, filter 0.33s, transform .33s !important;
}
#nav-bar .toolbarbutton-1:hover:not([disabled="true"]):active:not([disabled="true"]) .toolbarbutton-icon,
#toolbar-menubar .toolbarbutton-1:hover:not([disabled="true"]):active:not([disabled="true"]) .toolbarbutton-icon,
#nav-bar .toolbarbutton-1:hover:not([disabled="true"]):active:not([disabled="true"]) .toolbarbutton-badge-stack,
#toolbar-menubar .toolbarbutton-1:hover:not([disabled="true"]):active:not([disabled="true"]) .toolbarbutton-badge-stack {
fill: rgba(0,207,229,1) !important;
filter: drop-shadow( 1px 1px 1px rgba(25,25,25,.75)) drop-shadow( -1px -1px 3px rgba(0,207,229,1)) brightness(120%) !important;
transform: translate(0px,1px) !important;
}
#nav-bar .toolbarbutton-1[open] .toolbarbutton-icon,
#toolbar-menubar .toolbarbutton-1[open] .toolbarbutton-icon,
#nav-bar .toolbarbutton-1[open] .toolbarbutton-badge-stack,
#toolbar-menubar .toolbarbutton-1[open] .toolbarbutton-badge-stack {
fill: rgba(0,207,229,1) !important;
filter: drop-shadow( 1px 1px 1px rgba(25,25,25,.75)) drop-shadow( -1px -1px 3px rgba(0,207,229,1)) brightness(120%) !important;
transform: translate(0px,0px) !important;
}
Alles anzeigen
Damit sind meine Buttons angepasst und verändern auch nicht ihre Größe,
wenn ich die Symbole im Skript per CSS anspreche!
Sieht so bei mir aus!
Ja, das kann man, mit dem Nachteil, dass sich der gesamte Button dann mit vergrößert. Nun habe ich versucht über Größenanpassungen das zu ändern, aber automatisch verkleinert sich dann auch das icon wieder. Im Moment habe ich noch keine Lösung dafür.
Bei dem Script addons-update-button.uc.js verhält es sich auch so, die anderen machen da keine Probleme.
Äh, mit dem Code von 2002Andreas bleibt der Button in seiner Größe!
Es wird nur das Symbol angesprochen!
Mach doch mal bitte ein "Foto", vor der Benutzung, nach der Benutzung des Codes.
Bitte.
AH, halt, Kommando zurück!
Ich habe für die Buttons noch ein extra CSS am Laufen.
Schaumal was daraus Du gebrauchen kannst.
#nav-bar .toolbarbutton-1,
#toolbar-menubar .toolbarbutton-1 {
margin: 2px 3px 3px!important;
min-height: 30px !important;
max-height: 30px !important;
min-width: 30px !important;
max-width: 30px !important;
border-radius: 50% !important;
background-position: center !important;
background: linear-gradient(155deg, rgba(0, 0, 0, 0.25), rgba(255, 255, 255, 0.25) );
box-shadow: -1px -1px 2px rgba(255,255,255, 0.25), 2px 2px 2px rgba(0, 0, 0, 0.25);
filter: contrast(110%) brightness(90%) !important;
transition: filter 0.33s, box-shadow 0.33s !important;
}
#nav-bar .toolbarbutton-1:hover:not([disabled="true"]),
#toolbar-menubar .toolbarbutton-1:hover:not([disabled="true"]) {
filter: contrast(120%) brightness(100%) !important;
}
#nav-bar .toolbarbutton-1:hover:not([disabled="true"]):active:not([disabled="true"]),
#toolbar-menubar .toolbarbutton-1:hover:not([disabled="true"]):active:not([disabled="true"]) {
border-radius: 50% !important;
background: linear-gradient(145deg, rgba(0,0,0,.5), rgba(48,48,48,.5), rgba(108,108,108,0.5) ) !important;
box-shadow: 0px 0px 1px rgba(255,255,255,.25) !important;
}
#nav-bar .toolbarbutton-1 .toolbarbutton-icon,
#toolbar-menubar .toolbarbutton-1 .toolbarbutton-icon,
#nav-bar .toolbarbutton-1 .toolbarbutton-badge-stack,
#toolbar-menubar .toolbarbutton-1 .toolbarbutton-badge-stack {
background: transparent !important;
filter: drop-shadow( 1px 1px 1px rgba(25,25,25,.75)) !important;
transition: fill 0.33s, filter 0.33s, transform .33s !important;
}
#nav-bar .toolbarbutton-1:not([open]):hover:not([disabled="true"]) .toolbarbutton-icon,
#toolbar-menubar .toolbarbutton-1:not([open]):hover:not([disabled="true"]) .toolbarbutton-icon,
#nav-bar .toolbarbutton-1:not([open]):hover:not([disabled="true"]) .toolbarbutton-badge-stack
#toolbar-menubar .toolbarbutton-1:not([open]):hover:not([disabled="true"]) .toolbarbutton-badge-stack {
filter: drop-shadow( 1px 1px 1px rgba(25,25,25,1.00)) drop-shadow( -1px -1px 3px rgba(200,200,200, 0.5)) brightness(120%) !important;
transition: fill 0.33s, filter 0.33s, transform .33s !important;
}
#nav-bar .toolbarbutton-1:hover:not([disabled="true"]):active:not([disabled="true"]) .toolbarbutton-icon,
#toolbar-menubar .toolbarbutton-1:hover:not([disabled="true"]):active:not([disabled="true"]) .toolbarbutton-icon,
#nav-bar .toolbarbutton-1:hover:not([disabled="true"]):active:not([disabled="true"]) .toolbarbutton-badge-stack,
#toolbar-menubar .toolbarbutton-1:hover:not([disabled="true"]):active:not([disabled="true"]) .toolbarbutton-badge-stack {
fill: rgba(0,207,229,1) !important;
filter: drop-shadow( 1px 1px 1px rgba(25,25,25,.75)) drop-shadow( -1px -1px 3px rgba(0,207,229,1)) brightness(120%) !important;
transform: translate(0px,1px) !important;
}
#nav-bar .toolbarbutton-1[open] .toolbarbutton-icon,
#toolbar-menubar .toolbarbutton-1[open] .toolbarbutton-icon,
#nav-bar .toolbarbutton-1[open] .toolbarbutton-badge-stack,
#toolbar-menubar .toolbarbutton-1[open] .toolbarbutton-badge-stack {
fill: rgba(0,207,229,1) !important;
filter: drop-shadow( 1px 1px 1px rgba(25,25,25,.75)) drop-shadow( -1px -1px 3px rgba(0,207,229,1)) brightness(120%) !important;
transform: translate(0px,0px) !important;
}
Alles anzeigen
Du kannst mit diesem CSS-Code dann Dir die Buttons so gestalten wie Du es möchtest. ![]()
Äh, wie soll ich das nun erklären?
![]()
Also, so wie das "alte" Skript gestrickt war, Version 1.05 vom 27. Juli, funktionierte
ProfilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons'));
nicht mehr!
Als Zwischenlösung ersetzte ich diese Variable durch
ProfilePath = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");.
Jedoch mussten dadurch die Ordner chrome & icons anders eingebunden werden.
Das gefiel mir nicht ![]()
Du
hattest mich aber auf eine Idee gebracht!
CSS!
Ich nutze ja auch ein anderes Skript, um alle Menüs mit Symbolen zu erweitern,
in diesem Skript wird aber weiterhin
ProfilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons'));
genutzt, aber
die Variable wird eben in CSS-Teil des Skriptes aufgerufen
![]()
Und es funktioniert.
Also,
habe ich im neuen Skript, Version 1.07 vom August 3, CSS-Code "eingeschmuggelt", um wieder die
alte Möglichkeit der Variable nutzen zu können.
Ich bin mir auch nicht sicher, ob ich es dabei belasse.
Es ergibt m.M. absolut keinen Vorteil an dieser Methode.
Eventuell kehre ich doch wieder auf die andere Methode zurück.
Um noch einmal die Unterschiede zu verdeutlichen:
Alte, nicht mehr funktionierende Version.
let ProfilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons'));
let buttonicon = "bookmark-hollow.svg";
let props = {
style: "list-style-image: url('" + ProfilePath + buttonicon + "');"
};
Die Zwischenlösung:
let currentProfileDirectory = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");
let buttonicon = "bookmark-hollow.svg";
let props = {
style: 'list-style-image: url("' + ("file:" + currentProfileDirectory + "/chrome/icons/" + buttonicon) +'");',
};
Die jetzige Lösung:
let ProfilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons'));
let ButtonIcon = "user-group_2.svg";
var css =`
#profileschange-button { list-style-image: url("${ProfilePath}/${ButtonIcon}") }
`;
var sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService);
var uri = makeURI('data:text/css;charset=UTF=8,' + encodeURIComponent(css));
sss.loadAndRegisterSheet(uri, sss.AUTHOR_SHEET);
Beachte die Zeilen mit Nummer 4.
--------------------------------------------------------------------------------------------------------------------------------------------------------
Nachtrag
Mir fiel gerade doch ein klitzekleiner Vorteil ein!
Man kann direkt im CSS-Teil des Skriptes, z.B. dir Größe genau dieses Symbols beeinflussen
und hat dann alles in einem Code.
Was kann ich machen, dass die Grafik im Button größer erscheint?
Eine Änderung der Pixelzahl (Vergrößerung) für die Grafik bringt nichts.
Wie hast Du das umgesetzt?
Und was für ein Dateiformat hat Dein Symbol?
So dann hier die neue und aktuelle Version meines "Button-um-weiteres-Profil-zu-öffnen-Skripts".
// JavaScript Document
// QuickProfilesChangesButton.uc.js
// Source file https://www.camp-firefox.de/forum/thema/136664/?postID=1231647#post1231647
// Source file https://www.camp-firefox.de/forum/thema/136664/?postID=1232240#post1232240
// Version 1.07 from August 3, 2023
(function() {
if (location.href !== 'chrome://browser/content/browser.xhtml') return;
try {
CustomizableUI.createWidget({
id: 'profileschange-button',
type: 'custom',
defaultArea: CustomizableUI.AREA_NAVBAR,
onBuild: function(aDocument) {
let toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
toolbaritem.onclick = event => onClick(event);
var props = {
id: 'profileschange-button',
class: 'toolbarbutton-1 chromeclass-toolbar-additional',
removable: 'true',
label: 'Profil zusätzlich starten',
accesskey: '', // Wer möchte kann hier z.B. 'C' eintragen, dann kann per "Alt + C" das Skript ausgeführt werden
tooltiptext: 'Profile Changer',
};
for (var p in props)
toolbaritem.setAttribute(p, props[p]);
return toolbaritem;
}
});
} catch(e) { };
let ProfilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons')); // Pfad zum Profilordner und gleich in den entsprechenden Unterordner
let ButtonIcon = "user-group_2.svg"; // Name & Dateiendung des anzuzeigenden Symbols!
var css =`
#profileschange-button { list-style-image: url("${ProfilePath}/${ButtonIcon}") }
`;
var sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService);
var uri = makeURI('data:text/css;charset=UTF=8,' + encodeURIComponent(css));
sss.loadAndRegisterSheet(uri, sss.AUTHOR_SHEET);
function onClick(event) {
if (event.button != 0){
return;
}
let file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
let arguments = ["-no-remote", "-P", "Standard-Benutzer", "-foreground"]; // Profil wird ausgewählt Hier "XXX" den gewünschten Profilnamen eintragen
// let arguments = ["-no-remote", "-P"]; // Wer lieber den Profilmanager aufrufen möchte,nutzt diese Zeile!
file.initWithPath("C:\\Program Files\\Mozilla Firefox\\firefox.exe"); // Pfad zur Firefox-Installation
// file.initWithPath("/Applications/Firefox.app/Contents/MacOS/firefox"); // Pfad zur Firefox-Installation, Dateipfad für Mac User
let process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
process.init(file);
process.run(false, arguments, arguments.length); // Profil wird bestätigt
}
})();
Alles anzeigen
Hallo Mira_Belle..
ich hatte es noch gar nicht getestet hier
Aber der neue Eintrag funktioniert so auch nicht.
Komisch ![]()
Bei mir ging es.
Aber gut, dass Du es fixen konntest.
Ja, das heißt es. In der Konsole erscheinen immer wieder mal Fehlermeldungen. In der Regel merkt man als Nutzer davon nichts.
Danke.
Und danke für das Testen.
Wie immer gern geschehen
Testen
![]()
Sorry, hatte ich nicht, und wie sollte es auch anders sein, natürlich geht es so nicht.
Aber jetzt:
let iconPath = D:/Nightly Neu/Firefox/profile/chrome/Icons;
var css =`
#profileschange-button {
list-style-image: url("file:${iconPath}/1.gif")!important;
}
`;
![]()
Sofern man nicht selbst eine WebExtension entwickelt hat, die eine solche Meldung auslöst, oder man gar Firefox-Entwicker ist, muss man sich eigentlich nicht um Fehler in WebExtension-Code kümmern.
Danke für Deine Antwort.
Heißt das für mich, dass ich im Prinzip, solange der Firefox ohne offensichtliche Fehler läuft,
ich die Fehlermeldungen, siehe #3, ignorieren kann?
Hallo Mira_Belle..
das funktioniert hier auch einwandfrei im Nightly.
Du bastelst doch gerne
Was leider nicht funktioniert ist die Kurzform davon:
Trage ich das aber so in die userChrome.css ein, dann passt es.
Du erinnerst Dich noch dunkel an mein Projekt,
allen Menüs ein Symbol zu verpassen?
Damals hatte ich arge Probleme das mit der Kurzform zu verstehen
und das in einer CSS zu verarbeiten.
Daher hatte ich mich damals für eine Lösung per JavaScript entschieden,
da man dort ja Variablen verwenden kann. ![]()
Du definierst also eine Variable für den Pfad, z.B. let iconPath = D:\\Nightly Neu\\Firefox\\profile\\chrome\\Icons
dann würde der Code dazu z.B. so aussehen:
Auch hier kannst Du ganz einfach das Symbol austauschen.
Bei JavaScript müssen halt immer absolute Pfade angegeben sein,
egal wie.
Und danke für das Testen.
Wie finde ich denn die Ursachen für Fehler herraus?
Es hageln z.Z. so einige raus.
Z.B. :WebExtension context not found! 3 ExtensionParent.sys.mjs:1248