keie Ahnung mehr von wo ich diese her habe.
Das war jedenfalls auch irgendwo von Mozilla.
Wenn dann von hier:
keie Ahnung mehr von wo ich diese her habe.
Das war jedenfalls auch irgendwo von Mozilla.
Wenn dann von hier:
Eher nicht. Hier funktioniert das nämlich...
Dito.
oder sich mit diesem Forum beschäftigt. Letzteres habe ich mir zu Nutze gemacht.
Selbstlernen ist sicher die beste Methode. Aber ein bisschen Unterstützung kann nie schaden. ![]()
FF 72.0
Und da hattest du das Suchfeld noch unten?
Mal wurden sie angezeigt, und dann wieder nicht.
Ich hatte letztens mal so etwas Ähnliches, da hatte ich vergessen, den @import-Befehl in die userChrome.css hineinzuschreiben. Peinlich, peinlich.
FuchsFan Das ist aber nur für CSS nötig, aber nach der Neuinstallationsorgie wird er das wohl ebenfalls neu machen müssen.
Heute nacht habe ich sogar den Rechner komplett inkl Windows 10 neu installiert.
Das war mit Kanonen auf Spatzen schießen und war vollkommen unnütz. Denn die Vorbereitungen betreffen nur das Installationsverzeichnis und das Profilverzeichnis von Firefox. Im Gegenteil, du hast womöglich noch geschadet, weil dein Profil nicht mehr zur Verfügung stehen könnte.
Mache folgendes: Schaue in das Installationsverzeichnis deiner Firefox-Version und siehe nach, ob sich dort die Datei config.js und der Ordner userChromeJS befinden. Im Installationsverzeichnis ist noch ein Ordner default, der wiederum einen Unterordner prefs hat. Dorthinein muss die Datei config-prefs.js hinein.
In den Ordner chrome deines Profilverzeichnisses muss die Datei userChrome.js. Wenn da schon eine ist, die du dort noch nicht hineinkopiert hast, überschreibe sie.
Wenn ich das richtig überblicke, hast du bisher nur von CSS geschrieben.
Also: Lies dir folgenden Beitrag durch:
Firefox-Anpassungen: die Basis
Dann lade dir von hier die Datei firefox-anpassungen.zip herunter:
https://github.com/Endor8/userChr…ster/userChrome
Scroll da etwas herunter, bis zu der Zeile, wo Direkter Download: firefox-anpassungen.zip steht. Klicke auf den Dateinamen und lade die Datei herunter und speichere sie irgendwo ab. Entpacke die Datei dann.
Kopiere die enthaltenen Dateien und den einen Ordner wie folgt:
ZitatUnd so werden die Dateien verteilt:
Direkt in den Firefox-Programmordner kommt die Datei config.js sowie das komplette Verzeichnis userChromeJS.
In den Unterordner \defaults\pref im Firefox-Programmordner wird die Datei config-prefs.js hineinkopiert.
Die Datei userChrome.js aus dem Unterverzeichnis chrome wird in das gleichnamige Verzeichnis deines Profil-Ordners kopiert. Sollte dort noch kein Ordner chrome vorhanden sein, kannst du das gesamte Unterverzeichnis dorthin kopieren.
In den Ordner chrome des Profilverzeichnisses. Also dort, wo auch deine userChrome.css ist.
Hast du denn überhaupt schon mal Benutzerskripte in Firefox verwendet? Wenn nicht, musst du nämlich erst noch Vorbereitungen treffen, damit die Skripte überhaupt funktionieren.
@Timlos Welche Version hattest du vor dem Update?
Der Standard ist aber, wo das Suchfeld jetzt ist. Hast du Skripte oder CSS-Codes verwendet, die das Suchfeld seinerzeit nach unten geschoben haben?
Nimm mal den Skriptcode aus Beitrag #4 und nicht den neueren aus Beitrag #6. Der ist schon für Firefox 73 angepasst und es kann da Unterschiede geben. Oder funktioniert das Skript, nur nicht die Gestaltung per CSS-Datei? Habe ich da etwas missverstanden?
Hallo milupo, den Code hatte ich nur bis zur Version 71. Im neuen Code werden auch die Grafiken angezeigt.
Hallo FuchsFan, du hast ja deinen Code mehrfach eingestellt. An irgendeiner Stelle habe ich ihn mal übernommen. Es ist jetzt wichtig zu wissen, ob Thomas3 noch diesen Code-Schnipsel hat.
Wenn er den Code-Schnipsel hat und ihn deaktiviert, könnte ich mir vorstellen, dass sich nach Einblendung der Grafiken einiges überlappt, sprich die Abstände nicht mehr stimmen. Es wäre schön, wenn du ihm dann helfen könntest. Aber warten wir erst einmal seine Antwort ab.
Evtl. doch Chrome installieren?
Nein, das bringt dir nur kurzfristig was - am Jahresende werden weder Firefox, noch Chrome, ja auch nicht mal mehr der Hersteller Adobe selbst den Flash-Player unterstützen. Der Flash-Player ist am Ende.
Hast Du irgendwelche Scripte oder Codes in Firefox am Laufen?
Thomas3 Hast du einen CSS-Code zur Verwaltung des Add-on-Managers? Ich habe hier einen von FuchsFan, der hat seine Codes hier bereitwillig zur Verfügung gestellt. Darin gibt es (zumindest bei mir) folgende Regel:
/*** hiermit werden unter Themes die Grafiken ausgeblendet ****/
.card-heading-image {
display: none !important;
}
Wie der Kommentar schon besagt, werden damit die Themes-Grafiken ausgeblendet.
Ich glaube besser ist dass ich wegen YUUID in Source Code ändern oder sehe ich falsch?
Also erst einmal heißt das UUID und nicht YUUID. Welchen Source Code meinst du? Den von NoScript? Und warum willst du ihn ändern? Wenn du den Source Code von NoScript ändern wiillst, musst du die xpi-Datei entpacken, ändern und wieder packen. Was dann? Dann funktioniert NoScript nicht mehr! Denn NoScript ist nun nicht mehr signiert und kann nicht mehr installiert werden! Alles unnütz. Du weißt doch nun, wo die UUID zu suchen hast und wo du sie im CSS-Code angeben musst. Mehr brauchst du nicht zu tun.
Hier beim Autor des Skripts ist sogar noch eine aktuellere Version:
https://github.com/alice0775/user…tusModoki.uc.js
Es gibt noch eine CSS-Datei dazu:
Abendstern2010 Die von dir verlinkte Version ist 6 Jahre alt. Ich habe hier aber eine Version, die im Nightly noch funktioniert.
// ==UserScript==
// @name ucjsDownloadsStatusModoki.uc.js
// @namespace http://space.geocities.yahoo.co.jp/gl/alice0775
// @description Downloads Status Modoki
// @include main
// @compatibility Firefox 71+
// @author Alice0775
// @note ucjsDownloadsStatusModoki.uc.js.css muss über die userChrome.css Datei geladen werden
// @version 2019/10/20 12:30 workaround Bug 1497200: Apply Meta CSP to about:downloads, Bug 1513325 - Remove textbox binding
// @version 2019/09/08 19:30 fix scrollbox
// @version 2019/05/21 08:30 fix 69.0a1 Bug 1551320 - Replace all createElement calls in XUL documents with createXULElement
// @version 2018/10/27 12:00 fix for 64+
// @version 2018/06/12 21:00 fix for private window mode
// @version 2018/06/07 12:00 fix file name for history
// @version 2018/02/10 12:00 try catch error when DO_NOT_DELETE_HISTORY = true
// @version 2017/12/10 12:00 fix error when DO_NOT_DELETE_HISTORY = true
// @version 2017/12/10 12:00 remove workaround Bug 1279329. Disable btn while clear list is doing, close button styling for 57.
// @version 2016/06/10 12:00 modify style independent of font-family
// @version 2016/06/10 07:00 modify style of close button, fix typo
// @version 2016/06/10 00:00 Workaround Bug 1279329. adjust some padding
// @version 2015/05/08 00:00 remove padding due to Bug 1160734
// @version 2014/03/31 00:00 fix for browser.download.manager.showWhenStarting
// @version 2013/12/22 13:00 chromehidden
// @version 2013/12/19 17:10 rename REMEMBERHISTOTY to DO_NOT_DELETE_HISTORY
// @version 2013/12/16 23:28 fixed initialize numDls
// @version 2013/12/16 23:24 open only download added
// @version 2013/12/16 23:10 open only download started
// @version 2013/12/16 21:20 modify css Windows7 Aero
// @version 2013/12/16 21:00 modify css
// @version 2013/12/16 19:30 add autocheck false
// @version 2013/12/16 18:31 fix pref name
// @version 2013/12/16 18:30
// @note
// ==/UserScript==
var ucjsDownloadsStatusModoki = {
_summary: null,
_list: null,
get downloadsStatusModokiBar() {
delete downloadsStatusModokiBar;
return this.downloadsStatusModokiBar = document.getElementById("downloadsStatusModokiBar");
},
get toggleMenuitem() {
delete toggleMenuitem;
return this.toggleMenuitem = document.getElementById("toggle_downloadsStatusModokiBar");
},
init: function() {
if (document.documentElement.getAttribute("chromehidden") !="" )
return;
XPCOMUtils.defineLazyModuleGetter(window, "Downloads",
"resource://gre/modules/Downloads.jsm");
var style = `
@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);
#ucjsDownloadsStatusModoki {
width: 100%;
max-height: 100px;
height: 39px;
}
`.replace(/\s+/g, " ");
var sspi = document.createProcessingInstruction(
'xml-stylesheet',
'type="text/css" href="data:text/css,' + encodeURIComponent(style) + '"'
);
document.insertBefore(sspi, document.documentElement);
sspi.getAttribute = function(name) {
return document.documentElement.getAttribute(name);
};
var toolbar = document.createXULElement("vbox");
toolbar.setAttribute("id", "downloadsStatusModokiBar");
toolbar.setAttribute("collapsed", true);
var bottombox = document.getElementById("browser-bottombox");
bottombox.appendChild(toolbar);
var browser = toolbar.appendChild(document.createXULElement("browser"));
browser.setAttribute("disablehistory", true);
browser.setAttribute("remote", false);
browser.setAttribute("id", "ucjsDownloadsStatusModoki");
browser.addEventListener("load", function(event){ucjsDownloadsStatusModoki.onload(event)}, true);
browser.setAttribute("src", "chrome://browser/content/downloads/contentAreaDownloadsView.xhtml?StatusModoki");
var menuitem = document.createXULElement("menuitem");
menuitem.setAttribute("id", "toggle_downloadsStatusModokiBar");
menuitem.setAttribute("type", "checkbox");
menuitem.setAttribute("autocheck", false);
menuitem.setAttribute("label", "Download Leiste");
menuitem.setAttribute("checked", false);
menuitem.setAttribute("accesskey", "D");
menuitem.setAttribute("oncommand", "ucjsDownloadsStatusModoki.toggleDownloadsStatusModokiBar()");
var ref = document.getElementById("menu_customizeToolbars");
ref.parentNode.insertBefore(menuitem, ref.previousSibling);
// Ensure that the DownloadSummary object will be created asynchronously.
if (!this._summary) {
Downloads.getSummary(Downloads.ALL).then(summary => {
this._summary = summary;
return this._summary.addView(this);
}).then(null, Cu.reportError);
}
if (!this._list) {
Downloads.getList(Downloads.ALL).then(list => {
this._list = list;
return this._list.addView(this);
}).then(null, Cu.reportError);
}
window.addEventListener("unload", this, false);
},
uninit: function() {
window.removeEventListener("unload", this, false);
if (this._summary) {
this._summary.removeView(this);
}
if (this._list) {
this._list.removeView(this);
}
},
handleEvent: function(event) {
switch (event.type) {
case "unload":
this.uninit();
break;
}
},
toggleDownloadsStatusModokiBar: function() {
var collapsed = this.downloadsStatusModokiBar.collapsed;
this.downloadsStatusModokiBar.collapsed = !collapsed;
this.toggleMenuitem.setAttribute("checked", collapsed);
},
openDownloadsStatusModoki: function() {
this.downloadsStatusModokiBar.collapsed = false;
this.toggleMenuitem.setAttribute("checked", true);
},
hideDownloadsStatusModoki: function() {
this.downloadsStatusModokiBar.collapsed = true;
this.toggleMenuitem.setAttribute("checked", false);
},
onDownloadAdded: function (aDownload) {
Cu.import("resource://gre/modules/Services.jsm");
var showWhenStarting = true;
try {
showWhenStarting = Services.prefs.getBoolPref("userChrome.downloadsStatusModoki.showWhenStarting");
} catch(e) {}
this.numDls = 0;
if (showWhenStarting) {
if (this._list) {
this._list.getAll().then(downloads => {
for (let download of downloads) {
if (!download.stopped)
this.numDls++;
}
if (this.numDls > 0)
this.openDownloadsStatusModoki(false);
}).then(null, Cu.reportError);
}
}
},
onSummaryChanged: function () {
Cu.import("resource://gre/modules/Services.jsm");
if (!this._summary)
return;
if (this._summary.allHaveStopped || this._summary.progressTotalBytes == 0) {
var closeWhenDone = false;
try {
closeWhenDone = Services.prefs.getBoolPref("userChrome.downloadsStatusModoki.closeWhenDone");
} catch(e) {}
if (closeWhenDone) {
this.hideDownloadsStatusModoki();
}
}
},
// chrome://browser/content/downloads/contentAreaDownloadsView.xhtml
onload: function(event) {
var doc = event.originalTarget;
var win = doc.defaultView;
doc.documentElement.setAttribute("ucjsDownloadsStatusModoki", "true");
var button = doc.createXULElement("button");
button.setAttribute("label", "Löschen");
button.setAttribute("id", "ucjs_clearListButton");
button.setAttribute("accesskey", "L");
var ref = doc.getElementById("downloadCommands");
var vbox = doc.createXULElement("vbox");
var box = vbox.appendChild(doc.createXULElement("hbox"));
box.appendChild(button);
box.appendChild(doc.createXULElement("spacer")).setAttribute("flex", 1);
var textbox = doc.createElementNS("http://www.w3.org/1999/xhtml", "input");
textbox.setAttribute("id", "downloadFilter");
textbox.setAttribute("clickSelectsAll", true);
textbox.setAttribute("type", "search");
textbox.setAttribute("placeholder", "Suchen...");
box.appendChild(textbox);
var closebtn = doc.createXULElement("toolbarbutton");
closebtn.setAttribute("id", "ucjsDownloadsStatusModoki-closebutton");
closebtn.setAttribute("class", "close-icon");
closebtn.setAttribute("tooltiptext", "Download-Leiste schließen");
box.appendChild(closebtn);
ref.parentNode.insertBefore(vbox, ref);
doc.getElementById("ucjs_clearListButton").addEventListener("command", function(event) {
win.ucjsDownloadsStatusModoki_clearDownloads();
});
doc.getElementById("downloadFilter")
.addEventListener("input", function(event) {
win.ucjsDownloadsStatusModoki_doSearch(event.target.value);
});
doc.getElementById("ucjsDownloadsStatusModoki-closebutton")
.addEventListener("command", function(event) {
win.ucjsDownloadsStatusModoki_doClose();
});
/*
// xxx Bug 1279329 "Copy Download Link" of context menu in Library is grayed out
var listBox = doc.getElementById("downloadsRichListBox");
var placesView = listBox._placesView;
if (placesView) {
var place = placesView.place;
placesView.place= null;
placesView.place = place;
}
*/
win.ucjsDownloadsStatusModoki_clearDownloads = function ucjs_clearDownloads() {
var DO_NOT_DELETE_HISTORY = true; /* custmizable true or false */
var richListBox = doc.getElementById("downloadsRichListBox");
Cu.import("resource://gre/modules/Services.jsm");
var places = [];
function addPlace(aURI, aTitle, aVisitDate) {
places.push({
uri: aURI,
title: aTitle,
visits: [{
visitDate: (aVisitDate || Date.now()) * 1000,
transitionType: Ci.nsINavHistoryService.TRANSITION_LINK
}]
});
}
function moveDownloads2History() {
if (DO_NOT_DELETE_HISTORY &&
!PrivateBrowsingUtils.isWindowPrivate(window)) {
try {
for (let element of richListBox.childNodes) {
let download = element._shell.download;
let aURI = makeURI(download.source.url);
// let aTitle = document.getAnonymousElementByAttribute(element, "class", "downloadTarget").value
let aTitle = download.target.path;
aTitle = aTitle.match( /[^\\]+$/i )[0];
aTitle = aTitle.match( /[^/]+$/i )[0];
let aVisitDate = download.endTime || download.startTime;
addPlace(aURI, aTitle, aVisitDate)
}
} catch(ex) {}
}
// Clear List
richListBox._placesView.doCommand('downloadsCmd_clearDownloads');
if (DO_NOT_DELETE_HISTORY &&
!PrivateBrowsingUtils.isWindowPrivate(window)) {
try {
if (places.length > 0) {
var asyncHistory = Components.classes["@mozilla.org/browser/history;1"]
.getService(Components.interfaces.mozIAsyncHistory);
asyncHistory.updatePlaces(places);
}
} catch(ex) {}
}
}
var btn = doc.getElementById("ucjs_clearListButton");
btn.setAttribute("disabled", true);
moveDownloads2History();
btn.removeAttribute("disabled");
// close toolbar
var closeWhenDone = false;
try {
closeWhenDone = Services.prefs.getBoolPref("userChrome.downloadsStatusModoki.closeWhenDone");
} catch(e) {}
if (closeWhenDone) {
top.ucjsDownloadsStatusModoki.hideDownloadsStatusModoki();
}
};
win.ucjsDownloadsStatusModoki_doSearch = function ucjs_doSearch(filterString) {
var richListBox = doc.getElementById("downloadsRichListBox");
richListBox._placesView.searchTerm = filterString;
};
win.ucjsDownloadsStatusModoki_doClose = function ucjs_doClose() {
top.ucjsDownloadsStatusModoki.hideDownloadsStatusModoki();
};
}
}
ucjsDownloadsStatusModoki.init();
Alles anzeigen
Ich konnte jenen User dazu überreden, auch ein Skript für F2 zu schreiben. Er warnt jedoch davor, die Funktion von F13 zu verändern, denn das würde einen bösen hamsterfressenden Dämon wecken.
![]()
Die Skripten sind ja Hammer, aber zu kompliziert für mich.
Ja, eine zip-Datei herunterladen, entpacken, die enthaltenen Dateien in das Profil- bzw. Installationsverzeichnis kopieren, das Skript in einer Datei im Ordner chrome des Profilverzeichnisses abspeichern - ja, das ist wirklich sehr kompliziert.