Bei der Version von Andreas ist in den Zeilen 17 und 35 documentGlobal. entfernt, wir hatten da vor kurzem erst ownerGlobal durch documentGlobal ersetzt.
Welchen Unterschied erzeugt die Abwesenheit von documentGlobal. ?
L
Bei der Version von Andreas ist in den Zeilen 17 und 35 documentGlobal. entfernt, wir hatten da vor kurzem erst ownerGlobal durch documentGlobal ersetzt.
Welchen Unterschied erzeugt die Abwesenheit von documentGlobal. ?
L
Nein, weil das ja das Menue ist, das sich bei Rechtsklick auf einen Link in einer Seite öffnet.
Bei mir geht es um das Tab-Kontextmenue, also das Menue, das sich bei Rechtsklick auf einen Tab öffnet.
GL
lionsson Jetzt?
Works fine. Grazie. Lionsson
Das hat funktioniert. Allerdings gibt es jetzt einen Doppel-Seperator in der Liste an der Stelle des besagten Eintrags.
L
Ja & selbstverständlich.
L
...das funzt leider nicht, sorry.
GL
Das Script (kein zusätzliches css benötigt) aus diesem Beitrag funzt auch ( auch i.d. Nightly): Link
.
Ich hab mir jetzt mal dieses Skript installiert und gecheckt. Alle für mich relevanten Einträge sind vorhanden. Wie bei einigen anderen Versionen ebenfalls. Nochmals vielen Dank dafür.
Eines aber noch: da ich möglichst wenig mit ungeeigneten Endgeräten arbeite: wie kann ich den Eintrag "An Mobilgerät senden" entfernen?
L
Mithin: was meinst Du mit "...es hat keine Funktion mehr"?
Weil es nicht mehr funktioniert, es macht nicht das was es soll. Ich habe es mal überarbeiten lassen, kannst ja mal testen.
Ich kenne mich mit den Skripten ja nicht aus, wenn es etwas weiter ans Eingemachte geht. Ich kann nur sagen, dass besagte Einträge (Linke, Rechte Tabs schließen,...) im Tabs-Kontextmenue anwesend, und haben funktioniert.
Ich habe jetzt Dein modifiziertes Skript – vielen Dank dafür – installiert, und die Einträge sind ebenfalls vorhanden. Wo ist der Unterschied?
GL
Ich muss jetzt erst mal mim Hund raus. L
was ist mit Zeile 11 mit u.a. dem Inhalt "...context_closeTabsToTheEnd..."?
Jedenfalls war der Eintrag vorhanden.
Ich habe jetzt grad erst mal das von FuchsFan modifizierte Skript installiert...
GL
Check doch bitte nochmal den Hinweis aus #11.
L
Na ja: wenn ich dieses Skript deaktiviere, verschwinden "Rechte Tabs schließen", "Linke Tabs schließen",... aus dem Tab-Kobntextmenue.
Mithin: was meinst Du mit "...es hat keine Funktion mehr"?
GL
Dunn. Works. Grazie.
Lionsson
Ich benutze dieses Skript:
(function() {
if (location != 'chrome://browser/content/browser.xhtml')
return;
let menuitem = document.createXULElement('menuitem');
menuitem.id = 'context_closeLeftTabs';
menuitem.setAttribute('label', 'Linke Tabs schließen');
let tabContextMenu = document.getElementById('tabContextMenu');
let refItem = document.getElementById('context_undoCloseTab');
tabContextMenu.insertBefore(document.getElementById('context_closeTabsToTheEnd'), refItem);
tabContextMenu.insertBefore(document.getElementById('context_closeTabsToTheStart'), refItem);
tabContextMenu.insertBefore(document.getElementById('context_closeOtherTabs'), refItem);
//tabContextMenu.removeChild(document.getElementById('context_closeTabOptions'));
//click
menuitem.addEventListener('click', () => {
if (event.button == 0) {
for (let i = TabContextMenu.contextTab._tPos - 1; i >= 0; i--)gBrowser.removeTab(gBrowser.tabs[i], {animate: true});
}
});
})();
Alles anzeigen
Was muss ich ändern, damit das überflüssige „Mehrere Tabs schließen“ mit Pfeil nicht mehr angezeigt wird?
GL
Fein für Dich erst mal. Aber bitte teile Deinen Erfolg doch mit uns.
Grüße Lionsson
Bob spricht mir aus der Seele.
Ich habe mich vor einem guten Jahr auch relativ intensiv mit etlichen Skripten beschäftigt, und auch viel Spaß daran – und in jenem Zusammenhang auch andiesem Forum – gehabt. Nichtsdestotrotz bleibe ich ich letztlich ein Firefoxer mit vereinzeilt und isoliert angelerntem. Dann kam wieder eine Zeit, in der ich mich mehr auf Inhalte konzentriert habe.
Ich denke, die Intensivskripter hier sollten insbesondere, wenn FF einen solchen Sprung wie zu Version 155 macht, Geduld mit den Immer-wieder-mal-Skriptern aufbringen. So wäre heute Morgen ein kurzes Refresh a la "Dort findet man den Installationsordner" und "Dort findet man den Profil- und den Chrome-Ordner" und diese Dateien müssen ersetzt werden sehr hilfreich gewesen. Letztlich haben's die meisten aber hinbekommen, denke ich.
Endors wunderbares Video mit der Schritt-für-Schritt-Anleitung war für das Ersetzen dieser wenigen Dateien für mich z.B. etwas zu umfangreich. Dort sind ja vieles erklärt, was heute goanet nötig war...
GL
Toll, dass Du immer wieder mal Betaversionen Deiner Scripts postest. Das verwirrt keinen User, und wenn es dann als endgültiges Script vorliegt, hat sich eine schöne Spannung aufgebaut, und viele freuen sich. Nicht alle latürnich.
GL
Die Skripte funktionieren bei mir jetzt auch wieder. Immer ein bisschen schwierig, wenn man sich einige Jahre nicht mit dem Skripte-Thema befasst hat.
Lionsson, happy
Die muss also nicht ersetzt werden, correcto? GL
Beim Runterladen der „Firefox-anpassungen.zip“ kommt eine „userChrome.js“ vom 14.11.2017. Alle anderen Dateien sind aus der allerletzten Zeit. Ist das richtig so?
Grüße Lionsson
Jedenfall sieht es aus wie für 4-jährige gemacht, wie ich finde. Sehr bedauerlich, das. GL
Salve.
Wunderbar, dass da jetzt doch noch was kommt. Es konnte doch nicht sein, dass Mira_Belle locker lässt...
Allerdings:
ich habe soeben probehalber das alte Skript, das hier im Ursprungsposting korrekterweise als nicht mehr funktionierend beschrieben worden war, nochmal ausprobiert. Dieses Skript aus meinem chrome-Ordner datiert vom 5. Mai 2025:
[code]
// Translate_DeepL.uc.js
// https://github.com/ardiman/userChrome.js/tree/master/contexttranslate
// ex ContextTranslate.uc.js///
// modifiziert by universum 123, Umlaute geändert by 2002Andreas
// https://www.camp-firefox.de/forum/thema/126100/?postID=1107070#post1107070
(function () {
if (location.href !== 'chrome://browser/content/browser.xhtml') return;
let translate = function () {
let browserMM = gBrowser.selectedBrowser.messageManager;
browserMM.addMessageListener('getSelection', function listener(message) {
let t = (message.data !== '');
let e = (document.charset || document.characterSet);
if (t) {
openWebLinkIn('https://www.deepl.com/translator#en/de/' + encodeURIComponent(message.data), 'tab');
} else {
openWebLinkIn('https://www.deepl.com/translate?u=' + encodeURIComponent(gBrowser.currentURI.spec) + '&hl=de-DE&ie=' + e + '&sl=auto&tl=de-DE', 'tab');
};
browserMM.removeMessageListener('getSelection', listener, true);
});
browserMM.loadFrameScript('data:,sendAsyncMessage("getSelection", content.document.getSelection().toString())', true);
}
let menuitem = document.createXULElement('menuitem');
menuitem.id = 'context-DeepLtranslate';
menuitem.setAttribute('label', '\u00dcbersetzen (DeepL)');
//menuitem.setAttribute('tooltiptext', 'Mit DeepL \u00fcbersetzen');
menuitem.classList.add('menuitem-iconic');
let ProfilePath = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");
let IconPath = '/chrome/icons/'; // Pfad in den entsprechenden Unterordner
let ButtonIcon = "DeepL_2.png"; // Name & Dateiendung des anzuzeigenden Symbols!
menuitem.style.listStyleImage = 'url("' + ("file:" + ProfilePath + IconPath + ButtonIcon) + '")';
menuitem.addEventListener('command', translate);
let refItem = document.getElementById('context-inspect');
refItem.parentNode.insertBefore(menuitem, refItem);
})();
[/code]
Alles anzeigen
Eigentlich wollte ich mir lediglich nochmal zu Gemüte führen, auf welche Weise es nimmer funktioniert. Und siehe da: es funktioniert einfach wieder.
Grüße Lionsson