etwas mit der Pfadangabe nicht übereinstimmt.
Evtl. kann uns ja Sören genaueres dazu sagen.
etwas mit der Pfadangabe nicht übereinstimmt.
Evtl. kann uns ja Sören genaueres dazu sagen.
Funktioniert das?
// ==UserScript==
// @include chrome://mozapps/content/downloads/unknownContentType.xhtml
// @charset UTF-8
// @version Fx114+
// ==/UserScript==
(function () {
const Cu = Components.utils;
const { FileUtils } = ChromeUtils.importESModule( 'resource://gre/modules/FileUtils.sys.mjs');
if (!window.Services) Cu.import('resource://gre/modules/Services.jsm');
setTimeout(function () {
saveTo();
}, 200);
function saveTo() {
// Config
const dirArray = [
["" + FileUtils.getDir('UChrm', []).path, "chrome"],
['F:', 'F:'],
['F:\\Sonst\\Gorsky', 'Gorsky'],
['G:', 'G:'],
];
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 nach';
saveTo.type = 'menu';
const css =`
hbox.dialog-button-box button.dialog-button menupopup {
background: gold !important;
min-width: 220px !important;
padding: 5px !important;
margin: 15px 0 0 -62px !important;
border: 3px solid dodgerblue !important;
}
hbox.dialog-button-box button.dialog-button menupopup menuitem{
appearance: none !important;
color: blue !important;
background: #fefefc !important;
border: 1px solid silver !important;
margin-top: 1px !important;
border-radius: 7px !important;
padding-left: 12px !important;
}
hbox.dialog-button-box button.dialog-button menupopup menuitem:hover {
background: greenyellow !important;
border: 1px solid red !important;
}
hbox.dialog-button-box button.dialog-button menupopup menuitem.menuitem-iconic label.menu-iconic-text {
color: blue !important;
font-size: 15px !important;
font-weight: 600 !important;
margin-left: 12px !important;
margin-top: 1px !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
Funktioniert das?
Hier im Nightly nicht ganz richtig
Klicke ich jetzt auf: Downloads, dann wird die Datei geöffnet und gespeichert
In Fx 114 funktioniert es richtig.
Klicke ich jetzt auf: Downloads, dann wird die Datei geöffnet und gespeichert
Das stimmt im Nightly, "Datei speichern", und wird dann mit verknüpftem Prog geöffnet.
Hier im Nightly nicht ganz richtig
Das stimmt im Nightly, "Datei speichern", und wird dann mit verknüpftem Prog geöffnet.
Ich hatte das gleiche Problem und zwar in der Release und in der Nightly.
Nachdem ich ein paar mal die Einstellungen (Nachfragen/Speichern/Öffnen) geändert hatte und dann wieder auf 'jedes Mal nachfragen' gestellt habe, speicherte er die Datei dann am angegeben Ort ohne gleichzeitiges Öffnen. Bei beiden Versionen!
Leider kann ich nicht die genauen Schritte rekapitulieren. Kann es sein, dass es wieder was mit der 'handlers.json' zu tun hat?
Nachdem ich ein paar mal die Einstellungen
Das habe ich jetzt auch mal gemacht, ändert zumindest bei mir im Nightly nichts
Das habe ich jetzt auch mal gemacht, ändert zumindest bei mir im Nightly nichts
Vielleicht müsste man das 'File'-Objekt noch mit weiteren Parametern anreichern bzw. die saveDestinationAvailable() Funktion dahingehend verändern. Mehr passiert ja eigentlich nicht in dem Skript, was das Speichern der Datei angeht.
Ansonsten bin ich überfragt...
Ansonsten bin ich überfragt.
Auf jeden Fall schon mal danke für deine Hilfe
Was Skripte betrifft muss ich meistens passen leider
Das habe ich jetzt auch mal gemacht, ändert zumindest bei mir im Nightly nichts
Hier leider auch nicht.
Wieso habt denn ihr alle Variablen mit const deklariert? Bei mir ist das nur bei Cu:
Alle anderen habe ich mit var deklariert:
// ==UserScript==
// @include chrome://mozapps/content/downloads/unknownContentType.xhtml
// @charset UTF-8
// @version Fx73+
// ==/UserScript==
(function() {
const Cu = Components.utils;
if (!window.FileUtils) ChromeUtils.importESModule('resource://gre/modules/FileUtils.sys.mjs');
if (!window.Services) Cu.import('resource://gre/modules/Services.jsm');
setTimeout(function() {
saveTo()
}, 200);
function saveTo() {
// Config
var dirArray = [
['C:\\Users\\Lenovo M58\\Documents', 'Dokumente'],
['C:\\Users\\Lenovo M58\\Bilder', 'Bilder'],
['C:\\Users\\Lenovo M58\\Music', 'Musik'],
['C:\\Users\\Lenovo M58\Videos', 'Videos'],
['D:\\Program Files (x86)', 'Programmdateien'],
// ["" + FileUtils.getDir('UChrm', []).path + "", "chrome"],
//["" + FileUtils.getDir('UChrm', ['SubScript']).path + "", "SubScript"],
["C:\\", "C:"],
["D:\\", "D:"],
["F:\\", "F:"],
["G:\\", "G:"],
["H:\\", "H:"],
["I:\\", "I:"]
];
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 = "Składować do";
saveTo.type = "menu";
var css =`
button.dialog-button[label="Składować do"] {
appearance: none !important;
background-color: maroon !important;
color: white !important;
}
hbox.dialog-button-box button.dialog-button menupopup {
appearance: none !important;
background: forestgreen !important;
color: white !important;
}
hbox.dialog-button-box button.dialog-button menupopup menuitem.menuitem-iconic:hover {
appearance: none !important;
background: navy !important;
}
#unknownContentType {
background: blue !important;
}
#intro {
color: white !important;
(())}
`;
var sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService);
var uri = Services.io.newURI('data:text/css,' + encodeURIComponent(css));
sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);
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.saveDestinationAvailable(file);
dialog.onCancel = function() {};
close();
});
});
}
}());
Alles anzeigen
Wieso habt denn
Hallo milupo.
Auch dein Skript funktioniert hier nicht.
Nach Klick auf Downloads passiert hier gar nichts.
Auch dein Skript funktioniert hier nicht.
Hm, ich hatte es noch nicht getestet.
Wo kommen denn eigentlich die IDs location und locationtext her?
location habe ich gefunden, gibt es in der unknownContentType.xhtml, locationtext jedoch nicht.
2002Andreas Andreas, soviel ich weiß, hast du noch ältere Versionen von Firefox auf der Platte. Kannst du mal die beiden omni.ja nach locationtext durchsuchen? Die ID müsste eigentlich in der omni.ja des Wurzelverzeichnisses sein.
noch ältere Versionen von Firefox
Fx 108
Du kennst dich damit besser aus, hier mal beide Dateien in einer .zip Datei zum Download:
location habe ich gefunden, gibt es in der unknownContentType.xhtml, locationtext jedoch nicht.
Gibt es auch nicht (mehr). In der Zeile mit 'locationtext' wird ja mit dem 'conditional operator' auf 'null' überprüft und wenn das der Fall ist, dann wird location.value aufgerufen, also in diesem Fall immer. Vielleicht eine Altlast oder aus Kompatibilitätsgründen noch drin...
Tja, da bin ich vorerst mit meinem Latein am Ende.
2002Andreas Danke.
Danke.
Gerne wie immer
Tja, da bin ich vorerst mit meinem Latein am Ende.
Hast du #257 nicht gelesen? Da ist doch eine Erklärung drin...