saveto.uc.js geht nicht mehr
Hallo,
seit kurzem (Fx78?) geht dieses Skript bei mir nicht mehr. Wenn ich auf den "Speichern unter"-Button klicke, passiert nichts, in der Fehlerkonsole erscheint dieser Fehler:
Uncaught TypeError: dialog.mLauncher.saveToDisk is not a function
saveTo file:///F:/Users/bege/AppData/Roaming/Mozilla/Firefox/Profiles/487kit50.Quantum/chrome/JS/saveto.uc.js:76
saveto.uc.js:76:34
JavaScript: saveto.uc.js
// ==UserScript==
// @include chrome://mozapps/content/downloads/unknownContentType.xhtml
// @charset UTF-8
// @version Fx73+
// ==/UserScript==
(function() {
const Cu = Components.utils;
if (!window.FileUtils) Cu.import('resource://gre/modules/FileUtils.jsm');
if (!window.Services) Cu.import('resource://gre/modules/Services.jsm');
setTimeout(function() {
saveTo()
}, 200);
// style sheet
Components.classes["@mozilla.org/content/style-sheet-service;1"].getService(Components.interfaces.nsIStyleSheetService).loadAndRegisterSheet(
Services.io.newURI("data:text/css;charset=utf-8," + encodeURIComponent('\
\
.dialog-button menupopup {\
background: #F0F0F0 !important; \
border: 1px solid #A0A0A0 !important; \
padding: 0 5px !important; \
} \
.dialog-button menupopup menuitem:hover {\
background-color: -moz-menuhover !important; \
} \
'), null, null),
Components.classes["@mozilla.org/content/style-sheet-service;1"].getService(Components.interfaces.nsIStyleSheetService).AGENT_SHEET
);
function saveTo() {
// Config
var dirArray = [
["F:\\Users\\bege\\Desktop", "Desktop"],
["F:\\Setups\\Dateiverwaltung\\FreeCommander", "FreeCommander"],
["F:\\Eigene Dateien\\PRIVAT\\Finanzen\\Girokonto GLS", "Girokonto GLS"],
["F:\\Eigene Dateien\\PRIVAT\\Finanzen\\Kreditkarte GLS", "Kreditkarte GLS"],
["F:\\Eigene Dateien\\DOWNLOADS", "Downloads"],
["F:\\Eigene Dateien\\DriveOnWeb", "DriveOnWeb"],
["F:\\Eigene Dateien\\Eigene Bilder\\Symbole", "Symbole"],
["F:\\Users\\bege\\AppData\\Roaming\\Mozilla\\Firefox\\icons", "Firefox\\Icons"],
["F:\\Setups\\Internet", "Setups\\Internet"],
["F:\\Setups\\Audio-Video", "Setups\\Audio-Video"],
["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:"],
// ["G:\\", "G:"],
// ["H:\\", "H:"],
["I:\\", "I:"],
["S:\\", "S:"]
];
let button = document.getElementById("unknownContentType").getButton("cancel");
let saveTo = button.parentNode.insertBefore(document.createXULElement("button"), button);
var saveToMenu = saveTo.appendChild(document.createXULElement("menupopup"));
saveTo.classList.toggle("dialog-button");
saveTo.label = "Speichern unter";
saveTo.type = "menu";
saveToMenu.classList.toggle("menu-iconic");
dirArray.forEach(function(dir) {
var [name, dir] = [dir[1], dir[0]];
var mi = document.createXULElement("menuitem");
var 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() {
var file = new FileUtils.File(dir.replace(/\\/g, '\\\\') + '\\\\' + (document.getElementById('locationtext') ? document.getElementById('locationtext').value : document.getElementById('location').value));
dialog.mLauncher.saveToDisk(file, 1);
dialog.onCancel = function() {};
close();
});
});
}
}());
Alles anzeigen
Hat sich bei dem Befehl in Zeile 76 etwas geändert?