- Firefox-Version
- 136.0
- Betriebssystem
- Windows 11 Professional 64 bit 24H2
Im Skript SaveTo.uc.js kann ich das Popup-Menü nicht mehr scrollen. Dadurch komme ich in einem Menü mit vielen Einträgen nicht mehr an die unteren Einträge heran. Das könnte auch schon im Fx135 so gewesen sein.
In der Version im Github von Endor ist das auch so.
Hier meine Version
JavaScript: SaveTo.uc.js
// ==UserScript==
// @include chrome://mozapps/content/downloads/unknownContentType.xhtml
// @charset UTF-8
// @version Fx104+
// ==/UserScript==
(function () {
if (location != 'chrome://mozapps/content/downloads/unknownContentType.xhtml')
return;
const { FileUtils } = ChromeUtils.importESModule( 'resource://gre/modules/FileUtils.sys.mjs');
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\\Office\\LibreOffice', 'Setups_LibreOffice'],
['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;
padding-left: 8px !important;
color: black !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