Der Fehler ist, dass wenn ich den Button im zweiten Fenster drücke die Seite about:config in einem neuen Tab im ersten Fenster geöffnet wird.
Dasselbe Verhalten ist mir auch bei dem Skript für die Entwicklerwerkzeuge aufgefallen. Mit der Version mit Inline-Handlern ging es aber. Ich nutze im Prinzip Entwicklerwerkzeuge-button.uc.js · Endor8/userChrome.js, auch wenn ich die ID, den Label- und Tooltiptext sowie den CSS-Code in eine Variable gesetzt habe.
Ich habe mal ein paar Skripts verglichen, und das hier scheint momentan zu funktionieren; ich hoffe die Anmerkungen im Script machen das Prinzip klar.
Generell hänge ich einfach den addEventlistener unten an, mit der ID des Buttons, und ausserhalb des oberen Codeabschnitts (...?).
// aboutconfig-button.uc.js Test #3
(function() {
if (location != 'chrome://browser/content/browser.xhtml') return;
try {
CustomizableUI.createWidget({
id: 'aboutconfig_button',
type: 'custom',
defaultArea: CustomizableUI.AREA_NAVBAR,
onBuild: function(aDocument) {
let currentProfileDirectory = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");
let buttonicon = "LettersC-1.png"
let toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
var props = {
id: 'aboutconfig_button',
class: 'toolbarbutton-1 chromeclass-toolbar-additional',
label: 'About:Config',
tooltiptext: 'About:Config',
style: 'list-style-image: url("' + ("file:" + currentProfileDirectory + "/chrome/icons/" + buttonicon) + '");'
// alte Version
//onclick: 'if (event.button == 0) { \
// openTrustedLinkIn("about:config", "tab");\
// }; '
};
for (var p in props)
toolbaritem.setAttribute(p, props[p]);
// Fix #1
// toolbaritem.addEventListener('click', event => {
// if (event.button == 0) {
// openTrustedLinkIn("about:config", "tab");
//}
//});
return toolbaritem;
}
});
} catch(e) { };
// Fix #2
document.getElementById('aboutconfig_button').addEventListener('click', event => {
if (event.button == 0) {
openTrustedLinkIn("about:config", "tab");
}
});
})();
Alles anzeigen
Für das von dir verlinkte Script dann evtl: sowas -->
// Entwicklerwerkzeuge-button.uc.js test
(function() {
if (location != 'chrome://browser/content/browser.xhtml') return;
try {
CustomizableUI.createWidget({
id: 'Entwickler-ToolBarButton',
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: 'Entwickler-ToolBarButton',
class: 'toolbarbutton-1 chromeclass-toolbar-additional',
label: 'Entwicklerwerkzeuge',
tooltiptext: 'Entwickler Werkzeuge öffnen',
style: 'list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAqJJREFUeNp0k11IU2EYx593Q0RDL1wOmheihBCoiNHFrIYgYSBDKoRMIWgwduGFjTiIdRHiQIw+iBAS6qKUrJsVlRGsC2vWRUFzEclmxMZKXWzObe377PR/cLOB64Xfzt7zPv/f+8URAwMDVNoUReGHGeRAGITy+bwfbIB0JpMhWZZ369X19fXGqqqqbgR1wJPNZrngK9jAf11bW9vRlpaWE5FI5EAikVBDEkJdblfg8/m6nU7nXeDa3NxcTiaTVFlZyQVRCHyBQEBjsVguGI3G0zU1NQ0ej0eg5gcmyEBGahTq7Ha7a3JycsjtdtcGg8FliIgH0+l0DmRTqZS2tbX1mE6nO9TU1LTf4XAEcrmcF5AKguder3d6eHh4HjMNYUsSD/j9ftre3qZoNPoLYj+vDHJqbGzUx+NxLY9xX1Xcy9ra2rTJZJofGRkZ0mq1Eh/U+vo6bW1txVQqlZb7fIDYVkUsFmPaIac9rbm5WcKWVjo6OqTjtbX7Ojs7pcXFxRW9Xn+dbweysaWlJZ9GozHX1dX1ULmGfUoLkvTWWV3tdptMQe6XDLezJBwOK4XrLttO3Sf6o0xNKfaKisCMEIdXhSALKLQeluB5sFz4PHDNdnUpqJBD/f0RhJ99E+KSC4KZf5Ky7Qr4YjAYeHnJk0QTL4k+xc1mBeEXn4WQPkBw8z8SPqTVvr4+DqeA9Sx+nhLZ7JAkR0cVhF+9F2LsDQRPMHamJHwLfB8cHORwBtzmlyxAmIttjyHJjI8rCDscQlxmwXwhfAf4zVhm4QOaK1qLAoTpISQPIJEnJhSE3y0QXS0KflutVg7LJdI9AoQJN2O7BwnfzizRR0B8GhfBDfAInCuGr/Wq6UiDoMRPhWKvZUrjXXZniTbM1ivvbHvurwADAH3gYJeBXh2yAAAAAElFTkSuQmCC)',
};
for (var p in props)
toolbaritem.setAttribute(p, props[p]);
// Fix #1, alt
//toolbaritem.addEventListener('click', event => {
//if (event.button == 0) {
// document.getElementById('menu_devToolbox').click();
// }
//});
return toolbaritem;
}
});
} catch(e) { };
// Fix #2
document.getElementById('Entwickler-ToolBarButton').addEventListener('click', event => {
if (event.button == 0) {
document.getElementById('menu_devToolbox').click();
}
});
setTimeout(function() {
if (document.getElementById('menuWebDeveloperPopup').childElementCount <= 5) {
let { require } = ChromeUtils.importESModule("resource://devtools/shared/loader/Loader.sys.mjs", {});
require("devtools/client/framework/devtools-browser");
};
}, 0);
})();
Alles anzeigen