Vermutlich hängt das mit 4K und dem DPI-Scaling zusammen, das wäre dann Sache von Firefox und nicht dem Script.
Ganz sicher, das betrifft hier andere, ältere Programme, aber alles andere im Firefox einschließlich aller anderen Skripte wird im Fx richtig angezeigt, wie oben schon erwähnt.
Du musst das Popup erst auswählen:
Das wusste ich, aber bei anderen Elementen kann man die dann anklicken, um sie im Inspektor zu "fixieren". Das geht bei diesem Menü nicht, es reagiert auf Klicks ganz normal. Auf deinen Hinweis hin habe ich es nochmal probiert und ohne Anklicken konnte ich die Elemente dann untersuchen.
Letztendlich musste ich an zwei Stellen schrauben:
hbox.dialog-button-box button.dialog-button menupopup menuitem.menuitem-iconic hbox.menu-iconic-left {
transform: scale(.5) !important;
max-height: 20px !important;
}
hbox.dialog-button-box button.dialog-button menupopup menuitem.menuitem-iconic hbox.menu-accel-container {
max-height: 18px !important;
}
Das hätte ich ohne deine Hinweise nicht herausgefunden. Vielen Dank!
Das ganze Skript sieht jetzt so aus:
// ==UserScript==
// @include chrome://mozapps/content/downloads/unknownContentType.xhtml
// @charset UTF-8
// @version Fx104+
// ==/UserScript==
(function () {
const Cu = Components.utils;
if (!window.FileUtils) Cu.import('resource://gre/modules/FileUtils.jsm');
setTimeout(function () {
saveTo();
}, 200);
function saveTo() {
// Config
const dirArray = [
['F:\\Users\\bege\\Desktop', 'Desktop'],
['F:\\Downloads', 'Downloads'],
['F:\\Eigene Dateien\\Eigene Bilder\\Symbole', 'Symbole'],
['F:\\Users\\bege\\AppData\\Roaming\\Mozilla\\Firefox\\icons', 'Firefox\\Icons'],
['F:\\Setups\\Audio-Video', 'Setups\\Audio-Video'],
['F:\\Setups\\Dateiverwaltung', 'Setups\\Dateiverwaltung'],
['F:\\Setups\\Dateiverwaltung\\FreeCommander', 'Setups_FreeCommander'],
['F:\\Setups\\Editoren', 'Setups\\Editoren'],
['F:\\Setups\\Editoren\\Notepad++', 'Setups\\Notepad++'],
['F:\\Setups\\Grafik', 'Setups\\Grafik'],
['F:\\Setups\\Internet', 'Setups\\Internet'],
['F:\\Setups\\Sicherheit\\KeePass', 'Setups\\Sicherheit\\KeePass'],
['F:\\Setups\\Tools', 'Setups\\Tools'],
['F:\\Setups\\Tools\\W10', 'Setups\\Tools\\W10'],
['F:\\Setups\\Wartung', 'Setups\\Wartung'],
['F:\\Setups\\Wartung\\System u. Hardware', 'Setups\\Wartung\\System, Hardw.'],
['F:\\Eigene Dateien\\Eigene Bilder\\aktuelleDownloads', 'Bilder'],
['F:\\Eigene Dateien\\Eigene Musik\\aktuelleDownloads', 'Musik'],
['F:\\Eigene Dateien\\Eigene Videos\\aktuelleDownloads', 'Videos'],
[FileUtils.getDir('UChrm', []).path, 'chrome'],
[FileUtils.getDir('UChrm', ['CSS']).path, 'CSS'],
[FileUtils.getDir('UChrm', ['JS']).path, 'JS'],
['C:\\', 'C:'],
['E:\\', 'E:'],
['F:\\', 'F:'],
['S:\\', 'S:']
];
const button = document.getElementById('unknownContentType').getButton('cancel');
const saveTo = button.parentNode.insertBefore(document.createXULElement('button'), button);
const saveToMenu = saveTo.appendChild(document.createXULElement('menupopup'));
saveTo.classList.toggle('dialog-button');
saveTo.label = 'Speichern in…';
saveTo.type = 'menu';
const css =`
hbox.dialog-button-box button.dialog-button menupopup {
// color: white !important;
background: #eeeeee !important;
}
hbox.dialog-button-box button.dialog-button menupopup menuitem.menuitem-iconic {
padding-left: 8px !important;
}
hbox.dialog-button-box button.dialog-button menupopup menuitem.menuitem-iconic:hover {
background: red !important;
// color: white !important;
}
hbox.dialog-button-box button.dialog-button menupopup menuitem.menuitem-iconic hbox.menu-iconic-left {
transform: scale(.5) !important;
max-height: 20px !important;
}
hbox.dialog-button-box button.dialog-button menupopup menuitem.menuitem-iconic label.menu-iconic-text {
padding-right: 8px !important;
}
hbox.dialog-button-box button.dialog-button menupopup menuitem.menuitem-iconic hbox.menu-accel-container {
max-height: 18px !important;
}
`;
const sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService);
const uri = Services.io.newURI('data:text/css,' + encodeURIComponent(css));
sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);
dirArray.forEach(function (directory) {
const [name, dir] = [directory[1], directory[0]];
const mi = document.createXULElement('menuitem');
const item = saveToMenu.appendChild(mi);
item.setAttribute('label', (name || (dir.match(/[^\\/]+$/) || [dir])[0]));
item.setAttribute('image', 'moz-icon:file:///' + dir + '\\');
item.setAttribute('class', 'menuitem-iconic');
item.addEventListener('command', function () {
const locationtext = document.getElementById('locationtext');
const pathFile = dir + '\\' + (locationtext ? locationtext.value : document.getElementById('location').value);
const file = new FileUtils.File(pathFile);
dialog.mLauncher.saveDestinationAvailable(file);
dialog.onCancel = function () {};
close();
});
});
}
}());
Alles anzeigen