- Firefox-Version
- 115esr
- Betriebssystem
- macOs
Es gibt hier eine Menge Scripts für Buttons, die nach einem ähnlichen Schema aufgebaut sind, siehe Beispiel unten.
Wiederkehrende Probleme mit vielen davon sind Folgendes:
#1:
- Firefox öffnen, das Programm öffnet mit einem Browser Fenster (Fenster A).
- Script Button funktioniert; jetzt neues Fenster B öffnen, dann das Fenster A - das erste beim Start geöffnete Fenster - schliessen.
- Script Button funktioniert nicht mehr in Fenster B oder anderen Fenstern, sobald Fenster A geschlossen wurde.
#2:
- Firefox öffnen, das Programm öffnet mit einem Browser Fenster (Fenster A).
- Script Button funktioniert; jetzt neues Fenster B öffnen, dann den Button in Fenster B klicken.
- Button führt das Script aus - aber in Fenster A, nicht im aktiven Fenster B.
Dazu eine kleine Linksammlung, mehr oder weniger relevant:
Die problematischen Scripts benutzen Fix #1, vorgeschlagene Lösung (Fix #2), hier als Code Beispiel:
// 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 obsolet
//onclick: 'if (event.button == 0) { \
// openTrustedLinkIn("about:config", "tab");\
// }; '
// alte Version Ende
};
for (var p in props)
toolbaritem.setAttribute(p, props[p]);
// Fix #1
// toolbaritem.addEventListener('click', event => {
// if (event.button == 0) {
// openTrustedLinkIn("about:config", "tab");
//}
//});
// Fix #1 Ende
return toolbaritem;
}
});
} catch(e) { };
// Fix #2
document.getElementById('aboutconfig_button').addEventListener('click', event => {
if (event.button === 0) {
openTrustedLinkIn("about:config", "tab");
}
});
// Fix #2 Ende
})();
Alles anzeigen
Warum?
ZitatEs ist nur ein minimaler Unterschied zwischen den beiden Varianten, und gleich einfach umzusetzen, also warum nicht die bessere Variante benutzen?
Bei mir am Mac ist es sehr auffällig, weil hier Firefox nicht beendet wird beim Schliessen aller Fenster, also habe ich oft eine aktive, aber fensterlose Fx App im Dock; ich vermute sehr viele User stolpern eventuell mal über das Problem, ohne es zu melden oder nachvollziehen zu können.
Nicht zu vergessen dass mehrere Fenster sehr wohl benutzt werden, gerade auch in einem Setup mit mehr als einem Monitor; in dem Fall kann es ganz schnell Ärger geben mit einem Script das nicht alle Fenster - wie im Einzelfall gewünscht - bedienen kann.Letztlich ist es aber auch einfach ein Fehler im Script.
Warum nicht?
Die Lösung kommt von einem Amateur (mir), und könnte unvorhergesehene, aber von mir noch nicht beobachtete Probleme verursachen.
Warum nicht nicht?
99,99% aller User, oder nur du selber, benutzen nie mehr als ein Browserfenster. Kein Argument für Code der publik gemacht wird.
Ausserdem kommt Fix #1 aus der selben Quelle.