damit ich dem Firefox-Browser treu bleiben kann.
Na, bloß gut, dass andere Browser keine Bugs haben. Noch so ein Wanderer.
damit ich dem Firefox-Browser treu bleiben kann.
Na, bloß gut, dass andere Browser keine Bugs haben. Noch so ein Wanderer.
Werde es aber innerhalb der nächsten 4 Wochen Stück für Stück erledigen.
Du hast noch Zeit. Fx 136 erscheint voraussichtlich erst am 4. März.
Teile deine Skripte mit, es sind ja schon einige angepasst.
Meinst du / meint ihr, daran liegt es?
Weiß ich nicht. Da aber der Code in Windows mit Fx 128 bei Andreas funktioniert, sollte es nicht an der Firefox-Version liegen. Und es gibt ja nicht nur diesen einen Grund, den normalen Firefox zu verwenden, sprich jetzt schon Fx 134.
Verstehe ich es richtig, das im aktiven Firefox ab Version 137 diverse Skripte dann auch hier umgestellt werden müssen?
Wenn ja, macht es bestimtt Sinn die Umstellungen schon Stück für Stück vorzunehmen und separat zu speichern, damit diese dann, wenn es soweit ist, ausgetauscht werden können.
Schon ab Firefox 136. Klar, du kannst das auch jetzt schon machen. Da es die neue, dann allein gültige Methode schon lange gibt, kannst du das sogar schon für Fx 134 machen. Diese Methode ist sozusagen abwärtskompatibel. Aber die andere Methode mit oncommand, onclick usw. funktioniert ab Fx 136 nicht mehr. Sie funktioniert aber noch in Firefox 134 und wahrscheinlich auch noch in Firefox 135.
Da funktioniert der Code in Windows einwandfrei:
Dann liegt es auch nicht an Firefox 128 ESR.
Drachen Du hast den Code auch an der richtigen Stelle? Im Home-Verzeichnis, dann, nehme ich mal an, das Verzeichnis .mozilla (könnte sein, du musst das Verzeichnis erst einmal sichtbar machen) und darin das Verzeichnis Firefox. Wenn ich mich recht erinnere.
Noch ein Script, das funktioniert.
Es funktioniert? Mit dem Nightly? Glaube ich nicht, denn es muss noch angepasst werden.
Leider funktioniert diese Version hier nicht richtig.
Das Popup mit den Einträgen wird angezeigt, aber bei klick drauf tut sich hier nichts.
Ja, kann ich bestätigen. Ich frage mich, wie da grisu2099 und BrokenHeart meinen, dass das Skript funktioniert. ![]()
Nun, Firefox 134 ist auch stable und auf dem aktuellen Stand. Ich empfehle dir daher auch, wie AngelOfDarkness, die .deb-Versionen von Mozilla zu verwenden. ESR-Versionen sind sowieso nur für Unternehmen, Organisationen und Schulen gedacht.
Vielleicht reicht das schon aus; ungetestet! Zeile 19 ersetzen mit:
Habe ich doch oben in meiner Version angegeben und auch in der anderen Version (mit der Konfiguration) war dieser Code drinnen. ![]()
Debian sollte doch aber auch eine normale Release-Version anbieten, nicht nur eine ESR-Version.
Das müsste das Original sein:
Hallo Endor,
dieses Skript müsste für Mira_Belle erledigt sein, sie hat ja das fertige Skript gefunden:
Das ist aber eine andere Version, ohne Konfiguration am Anfang.
Mit aktualisiertem Eventhandler-Code funktioniert diese Version in about:preferences.
//Author @aborix - Tab schließen + Kontextmenü auch in dem Einstellungsfenster
//Erklärung von Sören https://www.camp-firefox.de/forum/thema/112673-userchrome-js-scripte-f%C3%BCr-den-fuchs-diskussion/?postID=1247653#post1247653
//angepasst von @milupo Zeile 22 > 8.10.2024 ab Fx 132 > tabbrowser-tabbox statt appcontent
(function() {
if (!window.gBrowser)
return;
var contextMenu = document.getElementById('contentAreaContextMenu');
var menuseparator = document.createXULElement('menuseparator');
menuseparator.id = 'context-sep-closetab';
contextMenu.append(menuseparator);
var menuitem = document.createXULElement('menuitem');
menuitem.id = 'context-closetab';
menuitem.setAttribute('label', 'Tab schließen');
//menuitem.setAttribute('oncommand', 'gBrowser.removeCurrentTab();');
menuitem.addEventListener('click', () => {
BrowserCommands.closeTabOrWindow();
});
contextMenu.append(menuitem);
var appcontent = document.getElementById('tabbrowser-tabbox');
appcontent.addEventListener('contextmenu', event => {
setTimeout(() => {
if (gContextMenu && !gContextMenu.shouldDisplay) {
for (let string of 'back forward reload bookmarkpage'.split(' ')) {
document.getElementById('context-' + string).removeAttribute('hidden');
}
document.getElementById('context-stop').setAttribute('hidden', 'true');
const A = 'navigation sep-navigation savepage sep-paste selectall sep-viewsource viewsource viewinfo sep-bidi inspect-a11y inspect sep-closetab closetab'.split(' ');
for (let node of contextMenu.childNodes) {
if (A.includes(node.id.substring(8)))
node.removeAttribute('hidden');
else
node.setAttribute('hidden', 'true');
}
contextMenu.openPopupAtScreen(event.screenX, event.screenY, true, event);
}
}, 50);
});
})();
Alles anzeigen
Oh man, ich sollte mal eine Pause machen!
In #109 steht doch die Lösung!!
Nicht, dass du dich da wunderst: onpopupshowing ist in dem Skript kein Inline-Eventhandler, der hätte ersetzt werden müssen. Da hätte sich der Autor des Skriptes eigentlich an die Standardschreibweise halten müssen: onPopupshowing, hat er aber nicht, so sieht es wie ein Inline-Eventhandler aus, obwohl es keiner ist.
2002Andreas Kannst du mal das Skript ohne Änderung einstellen? Möglicherweise wurde beim Ändern ein Fehler eingebaut. Auf jeden Fall kann ich das bestätigen. Der Witz dabei ist, ich habe hier eine andere Version, da funktioniert es nun wieder nur in about:preferences. Allerdings ist mir das wurscht. Denn der Eintrag „Tab schließen“ als Eintrag im Kontextmenü eines Tabs ist schon seit langem Standard.
einfach nur den Fehler doch "oncommand" zu benutzen?
Nein, so einfach geht es eben nicht. Du musst addEventListener verwenden, nicht setAttribute. Die Parameter command und function (event) gehören zu addEventListener. Davor steht das Objekt (hier item), in den Skripten ist das meist eine Variable, die vorher mit var oder let definiert wird.
Mit setAttribute wurde vorher oncommand als Attribut definiert (setAttribute = setze Attribut soundso). Da es keine Inline-Eventhandler mehr gibt, geht es nicht mehr diese als Attribut zu definieren.
Also sieht es so aus: objekt.addEventListener('command', function (event) { … }); Zwischen den geschweiften Klammern steht der auszuführende Code, der leider auch oft umgebaut werden muss.
Wenn ich deinen Code einfüge, dann sind die Buttons trotzdem grau statt weiß.
Grau müssten deine Menüleiste, deine Tableiste und der aktive Tab sein. Die beiden Symbole, um die es hier geht, sollten bei dir weiß sein.
Wie bist Du denn auf
item.addEventListener ('command', function (event) {
if (event.button == 0) {
gExternalApplications.exec(this.path, this.args);
} ,anstattitem.setAttribute('oncommand', function(event) {
gExternalApplications.exec(this.path, this.args);
}, true) gekommen?
Du könntest schwere Fragen stellen. ![]()
Was du bisher noch nicht so richtig verstanden hast: Es gibt keine Inline-Eventhandler mehr. Diese beginnen mit on- und danach den entsprechenden Befehl, also z. B. oncommand, onclick, ondblclick. Stattdessen kann jetzt nur noch die Methode addEventlistener verwendet werden, die den Eventhandler dem Skript sozusagen bekannt macht. Der Eventhandler ist dabei ohne vorgesetztes on, also nur command, click, dblclick. Die Methode addEventListener hat noch einen zweiten Parameter und das ist noch so ein Rätsel für mich. Wenn im auszuführenden Code event vorkommt, kann man offensichtlich event => verwenden. Aber dieser zweite Parameter kann auch eine Funktion sein. Und hier wird ja eine Funktion ausgeführt. Deswegen habe ich einfach function (event) genommen, in der Hoffnung, es funktioniert. Es hat funktioniert, Glück gehabt.
und diesen beiden Spielen
So lange wie sie auf einem neueren Windows noch laufen …
funktioniert leider nicht.
Firefox neu gestartet?
Somit funktionieren 15 Skripte dank eurer Hilfe wieder einwandfrei
Na, das ist doch was. Und Spider Solitär ist auch wieder erreichbar. ![]()
Funktioniert hat es trotzdem.
Ja, weil es nur das Menü betraf. Der Code für das Symbol war ja korrekt.
In Zeile 14 muss man bei type button in menu ändern. Dadurch hat man dann das Menü Start am Ende der Menüleiste. Aber: Bitte korrigiere im Skript am Ende tem.addEventListener in item.addEventlistener, sonst funktioniert der Aufruf per Menü nicht. Habe vergessen den Buchstaben „i“ zu kopieren. War ein blöder Kopierfehler.
da hat milupo ein i vergessen.
Genau. ![]()
Habe es im Code-Kasten oben geändert.