Und dann wieder den Ordner markieren und mit einem Packprogramm komprimieren.
Da ist doch auf einen Button drücken um einiges einfacher, finde ich.
Und dann wieder den Ordner markieren und mit einem Packprogramm komprimieren.
Da ist doch auf einen Button drücken um einiges einfacher, finde ich.
Ein Programm wie Firesave zu nutzen, ist in meinen Augen sowieso unnötig. Wieso braucht man bitte ein Programm, um einen Ordner zu sichern? Kopieren kann jedes Betriebssystem von Haus aus. Und selbst wenn man ein Programm nutzen wollte: Jedes vernünftige Backup-Programm lässt einen auswählen, was man sichern möchte. Speziell für Firefox benötigt man also auch nichts, wenn man sich sowieso schon über Firefox hinaus um Backups kümmert - was man wirklich tun sollte.
Weil es viel einfacher ist, einen Button zu drücken, als irgendeine kryptische Befehlskette in eine
"Eingabeaufforderung" einzugeben, damit
a. etwas gespeichert wird und
b. damit es auch am Speicherort gleich komprimiert wird.
Auch wird für das Zurückspielen gleich ein "Programm" mit geliefert, dass das ganze auch rückwärts bewerkstelligt.
Ich nutze dafür ein ewig altes Tool von Caschy. 10, Okt, 2009
![]()
Dies habe ich auch sehr lange benutzt!
Da es aber ein ausgelagertes Programm ist und zudem nicht weiterentwickelt ( ggf. Sicherheitslücken!?) wird, habe ich irgendwann die interne Scriptlösung übernommen.
Es ist eigentlich auch nur ein Script, halt mit AutoIt in eine EXE gewandelt.
Den Fehlerbehebungsmodus schon ein mal durchlaufen lassen?
Ein Windows Problem?
Es gab gestern ein Update.
Nur wo genau Du da in den Systemeinstellungen nachschauen musst??
Sorry.
Och nö, das ist doch viel zu einfach. ![]()
Danke, habe ich übernommen und das ursprüngliche Script für die Zeit- und Datumsanzeige wieder genommen.
JavaScript Alles anzeigen/* Uhr in Nav-Bar */ function doDatUhrCallback() {try{doDatUhr();}catch(ex){} } function convertUTCDateToLocalDate(date) { var newDate = new Date(date.getTime() + date.getTimezoneOffset() * 60 * 1000); var offset = date.getTimezoneOffset() / 60; var hours = date.getHours(); newDate.setHours(hours - offset); return newDate; } function doDatUhr() { var days = ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"]; var months = ["Jan", "Feb", "März", "Apr", "Mai", "Juni", "Juli", "Aug", "Sep", "Okt", "Nov", "Dez"]; window.setTimeout(doDatUhrCallback, 1000); var D = new Date(); var day = days[D.getDay()]; var month = months[D.getMonth()]; var year = D.getFullYear(); var hour = D.getHours(); var minute = D.getMinutes(); var second = D.getSeconds(); var date = day + ", " + (D.getDate() < 10 ? "0" +D.getDate() : D.getDate()) + ". " + month + ". " + year + " "; var time = (hour < 10 ? "0" +hour : hour) + ":" + (minute < 10 ? "0" +minute : minute) + ":" + (second < 10 ? "0" +second : second); var timestr = date + time + " Uhr" + " "; var text = " Nightly 64 "; var status = document.getElementById("statusbar-clock-display"); status.setAttribute("value", text + timestr); if (hours < 6 || hours > 20) { status.setAttribute("style", "color: white"); } else { status.setAttribute("style", "color: white"); } status.setAttribute("style", clockstyle); } var ClockStatus = document.getElementById("urlbar-container"); var ClockLabel = document.createXULElement("label"); ClockLabel.setAttribute("id", "statusbar-clock-display"); ClockLabel.setAttribute("class", "statusbarpanel-text"); ClockLabel.setAttribute("style", "padding-top:3px!important;font-size:19px;font-weight:bold;color:white!important;"); ClockStatus.parentNode.insertBefore(ClockLabel, ClockStatus.nextSibling); doDatUhr();
Ich habe mir mal erlaubt, Dein Script für mein Testprofil zu "vergewaltigen".
function doDatUhrCallback() {
if (location.href !== 'chrome://browser/content/browser.xhtml') return;
try{doDatUhr();}catch(ex){}
}
function convertUTCDateToLocalDate(date) {
var newDate = new Date(date.getTime() + date.getTimezoneOffset() * 60 * 1000);
var offset = date.getTimezoneOffset() / 60;
var hours = date.getHours();
newDate.setHours(hours - offset);
return newDate;
}
function doDatUhr() {
window.setTimeout(doDatUhrCallback, 1000);
var text = " Testprofil ";
var status = document.getElementById("statusbar-clock-display");
status.setAttribute("value", text);
if (hours < 6 || hours > 20) {
status.setAttribute("style", "color: red");
}
else {
status.setAttribute("style", "color: red");
}
status.setAttribute("style", clockstyle);
}
var ClockStatus = document.getElementById("menubar-items");
var ClockLabel = document.createXULElement("label");
ClockLabel.setAttribute("id", "statusbar-clock-display");
ClockLabel.setAttribute("class", "statusbarpanel-text");
ClockLabel.setAttribute("style", "padding-left: 280px!important; font-size:20px; font-weight:bold; color:red!important;");
ClockStatus.parentNode.insertBefore(ClockLabel, ClockStatus.nextSibling);
doDatUhr();
Alles anzeigen
Kannst Du mir zeigen, wie ich das if ... else ... gedöhns los werde und das Script immer noch den Text anzeigt?
Auch dafür gibts ein 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 (+ Mischung aus diversen Varianten aus dem Fuchsforum 1.11.21) // @note Sicherungsdatei enthaelt auch Profilname // @reviewURL http://bbs.kafan.cn/thread-1758785-1-1.html (function () { Components.utils.import("resource:///modules/CustomizableUI.jsm"); CustomizableUI.createWidget({ id : "Backup-button", defaultArea : CustomizableUI.AREA_NAVBAR, label : "Profilsicherung", tooltiptext : "Sichern der aktuellen Konfiguration", onClick: function(){ // Speicherort - Ordner festlegen - Sichern funktioniert nur wenn Speicherort- bzw. Ordner vorhanden ist!! var path = "G:\\Martin\\Sicherungen\\Firefox\\Firefox Sicherung\\Nightly\\"; // var path = ""; // Ausschlussliste var excludes = 'bookmarkbackups *cache* crashes fftmp *healthreport* minidumps safebrowsing *webapps* saved-telemetry-pings *thumbnails* *session* *Telemetry* *hotfix* *.sqlite-shm *.sqlite-wal *.bak parent.lock blocklist.xml content-prefs.sqlite directoryLinks.json mimeTypes.rdf compatibility.ini parent.lock formhistory.sqlite'; if (!path) { var nsIFilePicker = Ci.nsIFilePicker; var FP = Cc['@mozilla.org/filepicker;1'].createInstance(nsIFilePicker); FP.init(window, 'Sicherungspfad wählen', nsIFilePicker.modeGetFolder); if (FP.show() == nsIFilePicker.returnOK) { path = FP.file.path; } else { return false; } } excludes = excludes.replace(/\./g, '\\.').replace(/\*/g, '.*').replace(/\s+/g, '|'); excludes = new RegExp(excludes, 'i'); var zw = Cc['@mozilla.org/zipwriter;1'].createInstance(Ci.nsIZipWriter); var pr = {PR_RDONLY: 0x01, PR_WRONLY: 0x02, PR_RDWR: 0x04, PR_CREATE_FILE: 0x08, PR_APPEND: 0x10, PR_TRUNCATE: 0x20, PR_SYNC: 0x40, PR_EXCL: 0x80}; var fu = Cu.import('resource://gre/modules/FileUtils.jsm').FileUtils; var dir = fu.getFile('ProfD', []); let d = new Date(); d = d.getDate() + '.' + (d.getMonth() + 1).toString().padStart(2, '0') + '.' + d.getFullYear().toString().padStart(2, '0') + ' ' + d.getHours().toString().padStart(2, '0') + '\uA789' + d.getMinutes().toString().padStart(2, '0') + '\uA789' + d.getSeconds().toString().padStart(2, '0'); // Die folgende Zeile formt den Archivnamen var archiveName = 'Profil Nightly ' + ' ' + d + '.zip'; /* 'd' ersetzt 'localnow' */ var xpi = fu.File(path + '\\' + archiveName); zw.open(xpi, pr.PR_RDWR | pr.PR_CREATE_FILE | pr.PR_TRUNCATE); var dirArr = [dir]; for (var i=0; i<dirArr.length; i++) { var dirEntries = dirArr[i].directoryEntries; while (dirEntries.hasMoreElements()) { var entry = dirEntries.getNext().QueryInterface(Ci.nsIFile); if (entry.path == xpi.path) { continue; } if (entry.isDirectory()) { dirArr.push(entry); } var relPath = entry.path.replace(dirArr[0].path, ''); if (relPath.match(excludes)) { continue; } var saveInZipAs = relPath.substr(1); saveInZipAs = saveInZipAs.replace(/\\/g,'/'); // Konfigurationsdateien können gesperrt werden try { zw.addEntryFile(saveInZipAs, Ci.nsIZipWriter.COMPRESSION_FASTEST, entry, false); } catch (e) {} } } zw.close(); alert('Die aktuelle Konfiguration wurde als:\n'+ archiveName +'\ngesichert in:\n' + path); function alert(aString, aTitle) { Cc['@mozilla.org/alerts-service;1'].getService(Ci.nsIAlertsService).showAlertNotification("", aTitle, aString, false, "", null); } function bupgetCurrentProfileName(){ function readFile(aFile){ var stream = Cc["@mozilla.org/network/file-input-stream;1"].createInstance(Ci.nsIFileInputStream); stream.init(aFile, 0x01, 0, 0); var cvstream = Cc["@mozilla.org/intl/converter-input-stream;1"].createInstance(Ci.nsIConverterInputStream); cvstream.init(stream, "UTF-8", 1024, Ci.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER); var content = "", data = {}; while (cvstream.readString(4096, data)) { content += data.value; } cvstream.close(); return content.replace(/\r\n?/g, "\n"); } var PrefD = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("PrefD", Components.interfaces.nsIFile); var ini = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("AppRegD", Components.interfaces.nsIFile); ini.append("profiles.ini"); var ini = readFile(ini); var profiles = ini.match(/Name=.+/g); var profilesD = ini.match(/Path=.+/g); for ( var i = 0; i < profiles.length;i++) { if ((profilesD[i]+"$").indexOf(PrefD.leafName+"$") >= 0) { profiles[i].match(/Name=(.+)$/); return RegExp.$1; } } return null; } }, }); var cssStr = '@-moz-document url("chrome://browser/content/browser.xhtml"){' + '#Backup-button .toolbarbutton-icon {' + 'list-style-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1%2B%2FAAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNC8xMS8wOGGVBZQAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzQGstOgAAABxklEQVQ4ja2UMUgbURjHfxeSFBzuBEuCkkAgIA5JDdzWohVnQe3UpRDE2UXpKKXdWro4ixlcdNJAydxiyHZkCIKIOEnLpZQSRFFz%2Bjqk73nvuDtb2j883nv%2F73u%2F%2B%2B69ewf%2FWUZgbgEFYDgiPw18B86An8DtQw%2BYdF1XRLVGoyGEEKJara4Bj0MKIhGYDxuGQVSTqtVqH0ql0uzvNzLigCQSicjmeZ7K63Q6u5VKZRoYigXGVWhZlpbbbrfrwKjfS4ZVGKVCoUCz2aTX65FOp6WdA04igf69CsqyLMrlctAWsRXGAf9EavXyFELEZT4A2TwYsLQKF%2BYXAJhb3VPep4%2BLzK3uqd7vS9Xr%2B2qsAW9u4eyoxcZSFoCVLZfTwxaA6v2xjaUsuYmnWrU60IOr%2FmD8etvl%2Fausikl%2FZcsFULEbD02hwPUdl7cvs1qiBAb9eOCdwdjEM2AABdh88wJA%2BbK%2FX6MDtVPmHyRPOfjRPfc87%2FPfgJLJ5AzwRc0BbNseB8a63e6TuKsXpnw%2BP5nJZAzgq%2BM4x3IPzwFM07woFovv%2Bv3%2BUDTiXqlU6tI0zQs%2FI%2FSe2bYt%2FyCPgJFA%2BAdwDeA4zrfg2l%2BwUqCoC1F3YQAAAABJRU5ErkJggg%3D%3D)' + '}}'; var sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); var ios = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService); sss.loadAndRegisterSheet(ios.newURI("data:text/css;base64," + btoa(cssStr), null, null), sss.USER_SHEET); })();Pfade und Beschriftungen sind anzupassen....
Ich nutze dafür ein ewig altes Tool von Caschy. 10, Okt, 2009
(https://stadt-bremerhaven.de/firesave-1-0-d…er-den-firefox/)
Da wird man bei Erstbenutzung nach den Pfaden gefragt
und es wird eine editierbare *.ini erstellt.
Wer damit nicht klarkommt, also mit dem editieren, löscht diese einfach wieder,
sollten sich die Pfade geändert haben.
Habe nun ein Testprofil, eine Kopie meines Hauptprofils, angelegt.
Zusätzlich habe ich noch ein "nacktes" Profil, also ohne Anpassungen,
nur vorbereitet, dass CSS und JavaScript funktioniert.
So ist das "Bastelscript" für mich "schneller" auffindbar.
Warum erstellst du dir nicht einfach ein weiteres Profil nur zum Testen
Und wenn das Skript fertig ist und funktioniert, dann fügst du es in dein Hauptprofil ein.
Zumindest ist dann das Risiko gering, dass du dir das Profil wieder zerlegst
Stimmt, darüber sollte ich mal nachdenken.
Das aktuelle Profil clonen, damit ich auch gleich sehe, ob sich da irgendetwas ins Gehege kommt.
Aber z.Z. sichere ich wie dolle.
Bitte erleuchtet mich.
Wenn Ihr mit einem Unterordner Skripte arbeitet,
warum dann noch die Zeile userChrome.import("*", "UChrm"); ?
Wäre für mich eine zusätzliche, potentielle Fehlerquelle...
Also, ich habe alle JavaScripte in das Verzeichnis scripts geschoben.
Der Eintrag userChrome.import("*", "UChrm") verweilt nur deshalb noch in der userChrome.js,
weil ich neu Scripte, an denen ich noch bastele direkt in chrome erst ein mal ablege.
So ist das "Bastelscript" für mich "schneller" auffindbar.
Äh, und Danke 2002Andreas dafür, dass Du nochmals den Inhalt Deiner userChrome.js gezeigt hast.
Jetzt weiß ich auch, was ich andauernd falsch gemacht habe!
userChrome.import("scripts/*", "UChrm");
oder
userChrome.import("/scripts/*", "UChrm");
aber auch
userChrome.import("./scripts/*", "UChrm");
Alles ausprobiert, aber einfach mal nur "scripts" zu probieren, nee, darauf bin ich nicht gekommen,
und keiner hat es gesehen.
Egal, jetzt klappt es ja.
Es hat nun endlich geklappt!
Punkt 1
Habe nun eine neue userChromeJS ![]()
/*
* userChromeJS
*
* The file userChrome.js can be used to customize the functioning of Mozilla's
* user interface. Usage and syntax follow below; for useful code snippets see
* http://mozilla.zeniko.ch/userchrome.js.html.
*
* Examples:
* setTimeout(function() { document.title = "A new title for every window" }, 2000);
*
* if (location == "chrome://browser/content/browser.xul") {
* alert("Script loaded in main browser only");
* }
*
* // DOMi window
* if (location == "chrome://inspector/content/inspector.xul") {
* // Move Urlbar box to main toolbar
* var tb = document.getElementById('bxURLBar');
* var el = document.getElementById('mbrInspectorMain');
* if (tb && el) el.appendChild(tb, el.firstChild);
* }
*
* NOTE:
* userChromeJS includes an 'import' function to facilitate file management.
* An absolute path or relative path with Directory name property token can be
* used, as follows:
*
* // Single file (javascript .js or overlay .xul file)
* userChrome.import("Full file path");
* userChrome.import("Relative file path", "Token");
* // All .js and .xul files in a folder will be loaded.
* userChrome.import("Full file folder path");
* userChrome.import("Relative file folder path/name", "Token");
* userChrome.import("*", "Token");
*
* NOTE:
* Absolute windows files and folders must be have backslash escaped:
* "C:\\Program Files\\Mozilla\\scripts\\myscript.js"
*
* Examples:
* // Import script in [ProfileDir]/chrome/scripts/myscript.js
* userChrome.import("scripts/myscript.js", "UChrm");
* // Import script in [Profiles]/scripts/myscript.js (share same script in
* // multiple profiles
* userChrome.import("scripts/myscript.js", "DefProfRt");
* // All .js or .xul in profile chrome directory
* userChrome.import("*", "UChrm");
* // Import overlay
* userChrome.import("C:\\Program Files\\Mozilla\\scripts\\myOverlay.xul");
* // Import everything in Desktop folder /scripts
* userChrome.import("scripts", "Desk");
* // Perhaps the only thing you need in this file..
* if (location == "chrome://browser/content/browser.xul") {
* userChrome.import("scripts", "DefProfRt");
* }
*
* NOTE:
* For a full listing of directory tokens see the two links found here:
* https://developer.mozilla.org/en-US/Add-ons/Code_snippets/File_I_O#Getting_files_in_special_directories
* // What's the path for a token? This will print it in the console.
* userChrome.log(userChrome.getAbsoluteFile("Desk").path, "getAbsoluteFile:'Desk'");
*
* NOTE:
* userChromeJS includes a log function, invoked as follows:
* userChrome.log("string1"[, "string2"])
* Example:
* userChrome.log("hello world!", "myscript.js");
* Results in a console message:
* 2009-05-22 18:07:40 userChromeJS myscript.js: hello world!
*
* NOTE:
* The date format for the userChrome.log console logger may be user defined:
* Example:
* userChrome.dateFormat = "%Y-%m-%d %H:%M:%S";
*
* NOTE:
* The default charSet is "UTF-8"; for code using the 'import' or
* 'importFolder' functions to manage files, the charSet for subscript loader
* may be user defined, prior to calling the import or importFolder functions:
* Example:
* userChrome.charSet = "UTF-8";
*
* NOTE:
* Scripts are stored in a startup cache and loaded from it.
* After a change in userChrome.js you heve to restart Firefox with clearing
* this cache to make sure the changed file is read.
* By default this applies to imported .js files too. You can bypass the cache
* for these scripts with this statement BEFORE any import statement:
* userChrome.ignoreCache = true;
*
*/
userChrome.ignoreCache = true;
userChrome.import("*", "UChrm");
userChrome.import("scripts/Addons-UpDate-Check.uc.js", "UChrm");
userChrome.import("scripts/Browser-Werkzeuge.us.js", "UChrm");
userChrome.import("scripts/Button-PersonalToolbar.uc.js", "UChrm");
userChrome.import("scripts/Clock.us.js", "UChrm");
userChrome.import("scripts/Downloadbutton.uc.js", "UChrm");
userChrome.import("scripts/FavIconInUrlBar.uc.js", "UChrm");
userChrome.import("scripts/Fenster_schließen.us.js", "UChrm");
userChrome.import("scripts/Hamburger-Menu.uc.js", "UChrm");
userChrome.import("scripts/QuickLinkButton.uc.js", "UChrm");
userChrome.import("scripts/QuickLinkButton-about.uc.js", "UChrm");
userChrome.import("scripts/QuickLinkButton-cf.uc.js", "UChrm");
userChrome.import("scripts/Restart_Firefox.uc.js", "UChrm");
userChrome.import("scripts/Scrollbar.uc.js", "UChrm");
userChrome.import("scripts/Symbole.us.js", "UChrm");
userChrome.import("scripts/Translate_DeepL.uc.js", "UChrm");
userChrome.import("scripts/Werkzeuge-fuer-Webentwickler.us.js", "UChrm");
Alles anzeigen
Punkt 2
Meine Restart_Firefox.uc.js war "falsch" ![]()
Der Cache wurde nicht geleert.
Punkt 3
Der Fehlerbehebungsmodus ist doch hin und wieder von Nutzen ![]()
Punkt 4
Nichts ist so schlecht, dass es nicht für was gut ist ![]()
So auch schlaflose Nächte, wo man sich beschäftigen muss.
So wie ich dich kenne, hast du sicherlich ein Backup davon.
Ich habe allein für mein Hauptprofil 4 Stück
Leider nicht so wirklich!
Habe ein Vollbackup und dann noch verstreut Sicherungen der einzelnen Dateien unter chrome gehabt.
Mir sind jetzt also nur ein, zwei Lesezeichen flöten gegangen, glaube ich.
Wenn es so ist, auch nicht soo schlimm.
Was mich jedoch wundert, das mit den JavaScripts in einem Unterordner und diese dann per "import"
in der userChrome.js einzubinden klappt bei mir einfach nicht ![]()
Was soll's, dann bleiben sie halt in chrome.
Schade, es wäre halt viel aufgeräumter gewesen.
Hinterher ist man immer schlauer!
Habe mir mit einem kleinen Tool sowohl das Programmverzeichnis als auch das Profilverzeichnis gesichert.
(Ist schon etwas älter, wenn jemand AutoIt kennt und auch weiß wie das funktioniert,
könnte er/sie es ja mal aktualisieren.)
Es gibt da jemanden, der sucht noch ein 'Projekt für's Wochenende. ![]()
![]()
Ich habe mir mein Profil komplett zerschossen!
Warum auch immer funktioniert fast gar nichts mehr!
JavaScript wird gar nicht geladen, CSS funktionieren nur teilweise.
Überlebt das ganze auch einen Systemneustart?
Ich habe "alles" nur erdenkliche nun ausprobiert,
die Scripts, bzw. deren Funktion, überleben nur bis zum nächsten Neustart.
D.H. so erkläre ich es mir, der Code der Scripts liegt im Arbeitsspeicher,
beim Reboot wird dieser ja gelöscht und ....
Habe jetzt echt keine Idee mehr, bleiben die Scripte halt direkt im Chrome-Ordner.
Halt, STOP, alles zurück!
Das funktioniert so nicht wirklich!
Habe mir mit einem "kaputten" Script den "Speicher" zerschossen,
und kein Script wurde eingelesen, geschweige denn ausgeführt.
Habe das "kaputte" Script gelöscht, den Firefox neu gestartet und ... ![]()
Nix ging.
Erst als ich alle Scripts wieder ins Chromeverzeichnis kopiert hatte,
wurden sie wieder gelesen und ausgeführt.
Ich weiß noch nicht, ob es nicht eine andere Methode gibt,
oder was genau da bei mir schiefgelaufen ist!
Bitte mal um eine Gegenprobe.
Ein funktionierendes Script mit userChrome.import("unterordner/test.us.js", "UChrm") aufrufen.
Wenn es wirklich funktioniert, dann dieses Script
zum Testen direkt im Chromeverzeichnis speichern und Firefox neu starten.
(function() {
if (location.href !== AppConstants.BROWSER_CHROME_URL) return;
try {
CustomizableUI.createWidget({
id: 'bookmark-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: 'bookmark-button',
class: 'toolbarbutton-1 chromeclass-toolbar-additional',
removable: 'true',
label: 'Bookmarks',
accesskey: '',
tooltiptext: 'Bookmarks',
style: 'list-style-image: url("chrome://global/skin/icons/folder.svg");',
};
for (var p in props)
toolbaritem.setAttribute(p, props[p]);
return toolbaritem;
}
});
} catch(e) { };
setTimeout(function() {
document.getElementById('ucjs_PanelUI-button').appendChild(menuButton);
menuButton.setAttribute('consumeanchor', 'ucjs_PanelUI-button');
}, 0);
}) ();
Alles anzeigen
Das Script funktioniert nicht, aber es bringt die Engine zum Absturz.
Danach das Script einfach löschen, Firefox neu starten und schauen,
ob das funktionierende Script im Unterordner wieder funktioniert,
oder ob es erst in den Chromeordner verschoben werden muss.
Willst Du möchtest einen verschiebbaren Button, wo beim Betätigen ein Popup aufgeht,
in dem Lesezeichen anklickbare abgelegt sind?
Verstehe ich das richtig?
![]()
Alles klar, hab ich am Wochenende (wenn ich mehr Ruhe hab) was zu tun...
Kannst Du getrost zwischendurch, wenn Du 5 Minuten Zeit hast machen!
Habe bei mir auch erst mit
// userChrome.js
userChrome.ignoreCache = true;
userChrome.import("*", "UChrm");
userChrome.import("/js/Addons-UpDate-Check.uc.js", "UChrm");
userChrome.import("/js/Button-PersonalToolbar.uc.js", "UChrm");
userChrome.import("/js/Browser-Werkzeuge.us.js", "UChrm");
userChrome.import("/js/Clock.us.js", "UChrm");
userChrome.import("/js/Downloadbutton.uc.js", "UChrm");
userChrome.import("/js/FavIconInUrlBar.uc.js", "UChrm");
userChrome.import("/js/Fenster_schließen.us.js", "UChrm");
userChrome.import("/js/Hamburger-Menu.uc.js", "UChrm");
userChrome.import("/js/QuickLinkButton.uc.js", "UChrm");
userChrome.import("/js/QuickLinkButton-about.uc.js", "UChrm");
userChrome.import("/js/QuickLinkButton-cf.uc.js", "UChrm");
userChrome.import("/js/Restart_Firefox.uc.js", "UChrm");
userChrome.import("/js/Scrollbar.uc.js", "UChrm");
userChrome.import("/js/Symbole.us.js", "UChrm");
userChrome.import("/js/Translate_DeepL.uc.js", "UChrm");
userChrome.import("/js/Werkzeuge-fuer-Webentwickler.us.js", "UChrm");
Alles anzeigen
experimentiert, bevor ich auf
// userChrome.js
userChrome.ignoreCache = true;
userChrome.import("*", "UChrm");
userChrome.import("/js/*", "UChrm")
umgestellt habe.
Gerade getestet, funktioniert.
Hallo Mira_Belle
Erstmal toller Avatar, klasse Bild!!!!
Danke.
userChrome.import("*", "UChrm");
Meine userChrome.us.js schaut jetzt so aus:
// userChrome.js
userChrome.ignoreCache = true;
userChrome.import("*", "UChrm");
userChrome.import("/js/*", "UChrm")
Alle UserScripte liegen jetzt in dem Unterordner js
Funktioniert prima ![]()
Vielen lieben Dank.
Und wieder eine Frage zu JavaScript, bzw. zu dem Ort, wo sie stehen sollen.
Z.Z. befinden sich bei mir in chrome nur noch JavaScript-Dateien.
Ist es möglich diese in ein Unterverzeichnis zu verschieben und in chrome
nur ein Script welches auf dieses Unterverzeichnis "verlinkt"?
Es sind natürlich userChrome.css, userChromeShadow.css, userContent.css noch in chrome,
und die müssen da auch bleiben.
Ich vermute, dass auch userChrome.js und userChromeShadow.uc.js dort verbleiben müssen.
Bei 2002Andreas tritt das Problem ja leider auch auf. Bist also mit deinem Problem aktuell nicht allein.
Ich kann die Videos auf der Startseite in meinem Firefox 108.0.2 sehen. Weiter bin ich nicht rein ...
Dito!
Keine Probleme mit den Videos der Startseite.