geht dieses Skript bei mir nicht mehr.
Hatten wir doch vorgestern erst hier
Oh, danke, ich habe nur in diesem Thema gesucht ![]()
geht dieses Skript bei mir nicht mehr.
Hatten wir doch vorgestern erst hier
Oh, danke, ich habe nur in diesem Thema gesucht ![]()
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
// ==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?
Ich habe die IDs zugefügt, so funktioniert Endors Code bei mir auch in Thunderbird.
(Achtung, die URLs sind geändert!)
/* Firefox Quantum Symbole für Add-ons-Manager von Endor ************************************************/
/* Angepasst für Thunderbird von bege */
/* https://www.camp-firefox.de/forum/thema/129954-symbole-zu-kontextmen%C3%BCs-mit-javascript-und-css-hinzuf%C3%BCgen/?postID=1137566#post1137566/
/****************************************************************************************/
@-moz-document url-prefix(chrome://mozapps/content/extensions/extensions.xul), url-prefix(about:addons),url-prefix(chrome://mozapps/content/extensions/aboutaddons.html) {
#page-options > panel-list:nth-child(1) > panel-item:nth-child(1)::before, #utils-updateNow::before {
content: '';
display: block;
width: 16px;
height: 16px;
background-image: url('../../../../icons/Bild5.png');
margin-left: 5px;
margin-right: -21px;}
#page-options > panel-list:nth-child(1) > panel-item:nth-child(2)::before, #utils-viewUpdates::before {
content: '';
display: block;
width: 16px;
height: 16px;
background-image: url('../../../../icons/Bild61.png');
margin-left: 5px;
margin-right: -21px;}
#page-options > panel-list:nth-child(1) > panel-item:nth-child(4)::before, #utils-installFromFile::before {
content: '';
display: block;
width: 16px;
height: 16px;
background-image: url('../../../../icons/Bild3.png');
margin-left: 5px;
margin-right: -21px;}
#page-options > panel-list:nth-child(1) > panel-item:nth-child(5)::before, #utils-debugAddons::before {
content: '';
display: block;
width: 16px;
height: 16px;
background-image: url('../../../../icons/Bild66.ico');
margin-left: 5px;
margin-right: -21px;}
#page-options > panel-list:nth-child(1) > panel-item:nth-child(7), #utils-autoUpdateDefault {
fill: transparent !important;}
#page-options > panel-list:nth-child(1) > panel-item:nth-child(7)::before, #utils-autoUpdateDefault::before {
content: '';
display: block;
width: 16px;
height: 16px;
background: url('../../../../icons/check.png') no-repeat !important;
margin-left: 5px;
margin-right: -21px !important;}
#page-options > panel-list:nth-child(1) > panel-item:nth-child(7):not([checked])::before, #utils-autoUpdateDefault[checked="false"]::before {
content: '';
/* content: 'Nicht die';
font-size: 14px;
padding-left: 22px !important;
padding-right: 35px !important;
padding-top: 1px !important;
padding-bottom: 6px !important;
*/
display: block;
width: 16px;
height: 16px;
background: url('../../../../icons/Bild63.png') no-repeat !important;
margin-left: 5px;
margin-right: -21px;}
#page-options > panel-list:nth-child(1) > panel-item:nth-child(8)::before, #utils-resetAddonUpdatesToAutomatic::before {
content: '';
display: block;
width: 16px;
height: 16px;
background-image: url('../../../../icons/Bild64.png');
margin-left: 5px;
margin-right: -21px;}
#page-options > panel-list:nth-child(1) > panel-item:nth-child(10)::before, #manage-shortcuts::before {
content: '';
display: block;
width: 16px;
height: 16px;
background-image: url('../../../../icons/Bild67.png');
margin-left: 5px;
margin-right: -21px;}
Alles anzeigen
Und wenn andere das Problem hätten und es wäre ein Firefox-Fehler, dann wäre das Forum schon voll mit solchen Anfragen.
Das sehe ich auch so. Deshalb ist meine eigentliche Frage damit auch beantwortet. Liegt also irgendwo am Profil.
Danke für eure Bereitschaft zu helfen.
Bitte sei so gut und poste deine Erweiterungen und ggf. die benutzte Sicherheitssoftware.. dann könnte man vielleicht was sagen, so aber sicher nicht!!
Starte als Kurzangriff Firefox im Safe-Mode mit gedrückter UMSCHALT-Taste und schaue auf den Verbrauch. Wenn sich daran nichts ändert, ist Firefox nicht schuld, suche dann im System nach Verbraucher...
Hallo Boersenfeger,
danke für deine Antwort.
Der Fx verbraucht hier bei 4-5 Tabs bis zu 1,5 GB RAM, dafür habe ich vor einiger Zeit ca. 20 Tabs benötigt. Es geht also nicht um einen hohen Gesamt-Speicherverbrauch auf dem System.
Wie schon gesagt habe ich gerade keine Zeit, mit dem Profil zu testen, deshalb meine Frage. Hätte ja sein können, dass andere das auch erleben. Da niemand meine Erfahrung bestätigt, vermute ich, dass es am Profil liegt.
Hallo,
seit einiger Zeit stelle ich beim Fx einen höheren Speicherverbrauch fest. Das ist ungefähr seit dem Update auf 77, kann aber natürlich auch mit jedem Update einer der vielen Erweiterungen zusammenhängen, die ich installiert habe. Da ich z.Zt. nicht die Zeit habe, mit Profilen und Erweiterungen zu testen, hier erstmal die Frage, ob noch jemand diese Erfahrung gemacht und vielleicht schon eine Ursache dafür gefunden hat.
So, jetzt läuft's bei mir. Danke an milupo und Endor . Das Skript von Endor ist eine Kombination aus dem alten und dem neuen Skript, bei den Profil-Ordnern ist es der alte Code. Ich habe es nicht probiert, kann mir aber nicht vorstellen, dass es funktioniert, weil es die Funktion "getPrefDirPath" im neuen Skript gar nicht mehr gibt.
Ein Abschnitt des Codes sieht bei mir so aus:
["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";
Alles anzeigen
CSS und JS sind Unterordner des chrome-Ordners.
Wie schon erwähnt, muss noch "save to" übersetzt werden, hier in der letzten Zeile.
Seit noch nicht allzu langer Zeit (da ich es nicht dauernd nutze, weiß ich nicht, mit welchem Update das losging) geht beim Fx 73.0.1 das Skript saveto.uc.js nicht mehr. Es soll im Download-Dialog eine Liste mir voreingestellten Zielen für den Download zur Auswahl anbieten. Diese Liste kommt nicht mehr. Ich habe gesehen, dass auch der Download-Dialog jetzt die Endung xhtml hat. Obwohl ich das geändert habe, funktioniert das Skript aber trotzdem nicht.
Weiß jemand, woran es liegt?
// ==UserScript==
// @include chrome://mozapps/content/downloads/unknownContentType.xhtml
// @charset UTF-8
// ==/UserScript==
if (location == "chrome://mozapps/content/downloads/unknownContentType.xhtml") {
(function () {
function getQuery(str) {
return document.querySelector(str);
}
function getPrefDirPath(str) {
Components.utils.import("resource://gre/modules/Services.jsm");
var prefDir = Services.dirsvc.get(str, Ci.nsIFile).path;
return prefDir;
}
var dir = [
["" + getPrefDirPath('UChrm') + "", "chrome"],
["" + getPrefDirPath('UChrm') + "\\" + 'JS' + "", "chrome\\JS"],
["" + getPrefDirPath('UChrm') + "\\" + 'CSS' + "", "chrome\\CSS"],
["C:\\", "C:"],
["E:\\", "E:"],
["F:\\", "F:"],
["G:\\", "G:"],
["H:\\", "H:"],
["I:\\", "I:"],
["S:\\", "S:"]
];
var button = document.documentElement.getButton("cancel");
var saveTo = button.parentNode.insertBefore(document.createXULElement("button"), button);
var saveToMenu = saveTo.appendChild(document.createXULElement("menupopup"));
saveTo.className = "dialog-button";
saveTo.label = "Speichern auf";
saveTo.type = "menu";
dir.map(function (dir) {
var converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter);
converter.charset = "UTF-8";
var name = converter.ConvertToUnicode(dir[1]);
dir = converter.ConvertToUnicode(dir[0]);
var item = saveToMenu.appendChild(document.createXULElement("menuitem"));
item.setAttribute("label", (name||(dir.match(/[^\\/]+$/) || [dir])[0]));
item.setAttribute("image", "moz-icon:file:///" + dir + "\\");
item.setAttribute("class", "menuitem-iconic");
item.setAttribute("oncommand", 'var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); file.initWithPath("' + dir.replace(/\\/g, "\\\\") + "\\\\" + (getQuery("#locationtext") ? getQuery("#locationtext").value : getQuery("#location").value) + '"); dialog.mLauncher.saveToDisk(file,1); dialog.onCancel = function() {}; close();');
});
})();
}
Alles anzeigen
Die Symbole im Untermenü Web-Entwickler anzeigen zu lassen, ist anscheinend mit einem einfacheren Code als dem aus #36 möglich.
Bitte teste:
Funktioniert
Dankeschön ![]()
Nicht "AMPopup", sondern "AMpopup".
![]()
![]()
![]()
![]()
![]()
...Alle Einträge im Appmenu.uc.js funktionieren - außer "Browser-Wekzeuge".
Die kann ich aber immer noch (wenn gebraucht) mit Strg+Umschalt+I aufrufen.
Wie ich bereits angemerkt habe: mit diesem kleinen Manko kann ich leben!
Mit Strg+Umschalt+I öffnen sich die Webentwickler-Werkzeuge, die für Inhaltsseiten sind.
Die Browser-Werkzeuge, mit denen die Browseroberfläche untersucht werden kann, öffnen sich mit Strg+Alt+Umschalt+I
in dieses Thema zu verschieben?
Hallo bege ...
ich war eine Weile offline, darum erst jetzt meine Antwort.
Ich kann das zwar alles teilen bzw. verschieben, aber dann ist einges auch aus dem Kontext wie man so sagt.
Und nach dem Beitrag den du oben vorschlägst, gab es ja auch noch Beiträge von dir.
Ja klar, mir geht's auch nicht darum, wer geschrieben hat, sondern nur, dass im Diskussions-Thema alles zu den Skripten beieinander wäre. Bei den Beiträgen #55-#58 ist der Kontext tatsächlich nicht ganz eindeutig. Danach geht's eindeutig nur noch um die Skripte browsertoolbox.uc.js und AppMenu.uc.js. Die Entscheidung, ob und wie die Beiträge kopiert/verschoben werden, liegt bei dir als Moderator. Ist nur eine Frage bzw. Anregung von mir.
Bei oncommand soll stehen:
document.getElementById("AMPopup").openPopup();
Der Rest stimmt.
Der Code kann in einer eigenen function stehen, in diesem Fall hänge ihn am Ende des Skripts an.
Der Code kann auch ohne function bleiben und dann füge ihn nach diesen Zeilen (die Zeilennummern stimmen vielleicht nicht genau) ein:
Da lag ich ja fast richtig. Sieht jetzt so aus (mit den Zeilen davor und danach):
ExternalAppBtn.appendChild(ExternalAppPopup);
Appmenu.onpopupshowing();
// Menü mit Tastaturkürzel öffnen
let key = document.createXULElement('key');
key.id = 'key_AppMenuPopup';
key.setAttribute('key', 'A');
key.setAttribute('modifiers', 'alt');
key.setAttribute('oncommand', 'document.getElementById("AMPopup").openPopup();');
document.getElementById('mainKeyset').appendChild(key);
},
onpopupshowing: function() {
if (this._isready)
Alles anzeigen
Aber obwohl der key im keyset zu finden ist, passiert immer noch nichts, wenn ich Alt+A drücke. In dem Moment erscheint in der Konsole dieser Eintrag:
16:48:21.654 TypeError: document.getElementById(...) is null browser.xhtml:1:10 oncommand chrome://browser/content/browser.xhtml:1
16:48:23.390 Error: Invalid window ID: -1 ExtensionUtils.jsm
2002Andreas Dieses Thema hat sich für mich zu einer wahren Schatzkiste entwickelt. Da eine Frage die nächste ergeben hat, sind wir ab RE: Symbole zu Kontextmenüs mit Javascript und CSS hinzufügen vom eigentlichen Thema weg hin zu einer Diskussion über Userskripte gekommen, die wir sonst im Thema userChrome.js Scripte für den Fuchs (Diskussion) behandeln.
Wäre es, damit die hilfreichen Beiträge hier nicht verloren gehen, sinnvoll, die Beiträge ab dem o.g. in dieses Thema zu verschieben?
bege :
Falls du es selbst versuchen willst, dieser Beitrag kann als Vorlage dienen.
Außerdem eine Dokumentation: MDN - key, und sieh dir im Inspektor die keys in den keysets an.
Danke für dein Zutrauen ![]()
Ich habe aufs Geratewohl diesen Code ans Ende der init: function gehängt. Ich habe eine Tastenkombination gewählt, die in einem anderen Skript funktioniert (und dieses Skript deaktiviert). Immerhin wirft die Browser-Konsole keinen Fehler aus, aber es passiert auch nichts.
let key = document.createXULElement('key');
key.id = 'key_AppMenuPopup';
key.setAttribute('key', 'A');
key.setAttribute('modifiers', 'alt');
key.setAttribute('oncommand', 'Appmenu.onpopupshowing();');
document.getElementById('mainKeyset').appendChild(key);
Wohin muss der Code? Muss das eine eigene komplette function sein?
Ist der Eintrag für oncommand richtig?
Alles anzeigenin meinem Fall - s.a. auch meinen 1. Einwurf im #67 hatte ich nur die Änderung für mein Appmenu.uc.js eingebaut.
Es rührte/n sich die Browser-Konsole u. auch Browser-Werkzeuge nicht.
Mit Hilfe von Endor bekam ich die Konsole zum Laufen - die Werkzeuge streikten.
Auch mit der neuesten Version von Endor klappt es nur mit der Konsole, aber nicht mit den Werkzeugen.
Ich kann damit leben
Funktionieren die Browser-Werkzeuge denn, wenn du sie aus dem normalen Browser-eigenen Extras-Untermenü aufrufst?
Alles anzeigenHallo aborix .
Danke für die beiden Script Teile, funktionieren beide bestens.
:klasse:
Mein Script zum Öffnen der Browserwerkzeuge kannst Du weglassen.
Einfach im Script Appmenu.uc.js welches Du ja verwendest
diesen Abschnitt einfügen, ambesten gleich nach dem Eintrag für Browser-Konsole:
JavaScript{ name: 'Browser-Werkzeuge', subdir: 'Firefox Funktionen', image:'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAdUlEQVQokZVSwRHAIAgLPYfoXs7RCTpG53Avt7APrhaFU8gLMEEJAkEQgFbc7IxkVjt0r6Sp7VIVITumBpKt00FA2ThmjXzkfMMWO8EZFSj8LrUyjsG9b9DaJXq+qAIVxEUxtLHpaXE95dj1NcK2rmbwaGJ4Af0tIg00j/6iAAAAAElFTkSuQmCC', command: "var { require } = ChromeUtils.import('resource://devtools/shared/Loader.jsm', {});\ var { BrowserToolboxLauncher } = require('resource://devtools/client/framework/browser-toolbox/Launcher.jsm');\ BrowserToolboxLauncher.init();", },Nach dem Einfügen und neu Starten von Firefox mit Scriptcache leeren,
hast Du in Appmenu der Appmenuschaltfläche unter Firefox Funktionen dann
den Eintrag zum Öffnen der Browserwerkzeuge.Mfg.
Endor
Nach ein paar Tagen zurück am Computer ist dieses Thema ist voller Geschenke. Vielen Dank dafür, aborix , Endor , milupo .
Weil ich, wenn ich viel am Fx bastele, gern auch noch den Toolbarbutton von Endor haben will (erspart das Öffnen des AppMenu), habe ich aborix' Code eingebaut, so dass es jetzt so aussieht und auch bei mir funktioniert, egal wohin ich das Webentwickler-Menü verschoben habe.
// browsertoolbox.uc.js
(function() {
if (location != 'chrome://browser/content/browser.xhtml')
return;
try {
CustomizableUI.createWidget({
id: 'browser-toolbox-button',
type: 'custom',
defaultArea: CustomizableUI.AREA_NAVBAR,
onBuild: function(aDocument) {
var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
var props = {
id: 'browser-toolbox-button',
class: 'toolbarbutton-1 chromeclass-toolbar-additional',
label: 'Browser-Werkzeuge',
tooltiptext: 'Browser-Werkzeuge',
style: 'list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAdUlEQVQokZVSwRHAIAgLPYfoXs7RCTpG53Avt7APrhaFU8gLMEEJAkEQgFbc7IxkVjt0r6Sp7VIVITumBpKt00FA2ThmjXzkfMMWO8EZFSj8LrUyjsG9b9DaJXq+qAIVxEUxtLHpaXE95dj1NcK2rmbwaGJ4Af0tIg00j/6iAAAAAElFTkSuQmCC)',
oncommand: '(' + onCommand.toString() + ')()'
};
for (var p in props)
toolbaritem.setAttribute(p, props[p]);
return toolbaritem;
}
});
CustomizableUI.registerToolbarNode(tb);
} catch(e) { };
function onCommand() {
var { require } = ChromeUtils.import('resource://devtools/shared/Loader.jsm', {});
var { BrowserToolboxLauncher } = require('resource://devtools/client/framework/browser-toolbox/Launcher.jsm');
BrowserToolboxLauncher.init();
};
})();
Alles anzeigen
Um das Skript zu perfektionieren, würde ich gern noch den zweiten Codeschnipsel von aborix einbauen, um mit einem Mittelklick die Browser-Konsole zu öffnen. Das kriege ich trotz mehrere Versuche nicht hin. Kann mir jemand helfen?
Daran habe ich gar nicht gedacht. Aber da wird ein schon im Fx vorhandener Shortcut ausgeführt, im AppMenu ist noch gar keiner definiert. Mit dem Hinweis auf aborix hast du bestimmt recht ![]()
Hallo, ich hab schon wieder eine Baustelle.
(Wie) ist es möglich, für das Firefox-Menü von AppMenu.uc.js https://github.com/Endor8/userChr…8/appmenu.uc.js einen Tastatur-Shortcut anzulegen, mit dem man das Menü öffnen kann, ohne mit der Maus drauf zu klicken?
So hier das Script:
JavaScript Alles anzeigen// browsertoolbox.uc.js (function() { if (location != 'chrome://browser/content/browser.xhtml') return; try { CustomizableUI.createWidget({ id: 'browser-toolbox-button', type: 'custom', defaultArea: CustomizableUI.AREA_NAVBAR, onBuild: function(aDocument) { var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton'); var props = { id: 'browser-toolbox-button', class: 'toolbarbutton-1 chromeclass-toolbar-additional', label: 'Browser-Werkzeuge', tooltiptext: 'Browser-Werkzeuge', style: 'list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAdUlEQVQokZVSwRHAIAgLPYfoXs7RCTpG53Avt7APrhaFU8gLMEEJAkEQgFbc7IxkVjt0r6Sp7VIVITumBpKt00FA2ThmjXzkfMMWO8EZFSj8LrUyjsG9b9DaJXq+qAIVxEUxtLHpaXE95dj1NcK2rmbwaGJ4Af0tIg00j/6iAAAAAElFTkSuQmCC)', oncommand: '(' + onCommand.toString() + ')()' }; for (var p in props) toolbaritem.setAttribute(p, props[p]); return toolbaritem; } }); CustomizableUI.registerToolbarNode(tb); } catch(e) { }; function onCommand() { var document = event.target.ownerDocument; if (!document.getElementById('menu_browserToolbox')) { let { require } = Cu.import("resource://devtools/shared/Loader.jsm", {}); require("devtools/client/framework/devtools-browser"); }; document.getElementById('menu_browserToolbox').click(); }; })();Mfg.
Endor
Du kannst dich zur Not mit einer Hand durchhangeln: Drücke Alt+X, das Menü Extras öffnet sich. Das X ist gleich über der Alt-Taste. Dann w - Web-Entwickler öffnet sich und schließlich u - die Browser-Werkezuge öffnen sich.
Danke euch beiden, leider funktioniert hier beides nicht. Das liegt daran, dass ich sowohl fast alle Menüs und auch das Web-Entwickler-Menü per Skript in das App-Menü verschoben habe, das mit AppMenu.uc.js erstellt wird. Wenn die Menüs an ihrem normalen Platz sind, funktioniert beides.
Dass deshalb das Öffnen der Menüs über die Menü-Buchstaben nicht mehr geht, kann ich noch nachvollziehen, warum aber der Button die Browser-Werkzeuge nicht mehr öffnet, nicht. Der Befehl "document.getElementById('menu_browserToolbox').click();" müsste ja trotzdem gehen, weil der Menüeintrag diese ID behalten hat. Über diese ID füge ich dem Eintrag ja auch per CSS ein Symbol hinzu.
Kann man da was mit dem Attribut "key = key_browserToolbox" was machen?
Weiß jemand Rat?