Technisch wäre es allerdings überhaupt kein Problem, für alles, was eine Erweiterung bereitstellt, eine Tastenkombination zu hinterlegen.
Ich hab ja oben eine Erweiterung verlinkt, die eine Tastenkombi anbietet, nur eben nicht für den Titel allein.
Technisch wäre es allerdings überhaupt kein Problem, für alles, was eine Erweiterung bereitstellt, eine Tastenkombination zu hinterlegen.
Ich hab ja oben eine Erweiterung verlinkt, die eine Tastenkombi anbietet, nur eben nicht für den Titel allein.
Er will ja nicht alle Tabtitel auf einmal haben, sondern den Titel eines ausgewählten, des aktiven Tabs. Da wäre dann beispielsweise Copy Tab Title oder Page Title Copy geeignet oder, was ich selbst nutze, Link Text and Location Copier, dort ist aber das Kopieren des Tabtitels nur eine Funktion unter anderen.
Dr.Rock ich fand eben dieses Addon: TitleUrlCopy.
ZitatWhen you press command + c (mac) or or ctrl+c (win) with no character selected, save the site title and URL on the clipboard.
Dann müsstest du „nur“ noch Tabtitel und Url voneinander trennen und nur mit dem Gewünschten weiterarbeiten.
F6
Oder Strg + L oder Alt + S.
(Letzteres speichert und veröffentlicht hier im Forum auch einen Beitrag, so dass ich mich selbst überlistet habe.)
Ich glaube ebenfalls, dass man für den Tabtitel ein UserChrome-Skript benötigt, das erstmal jemand schreiben müsste. Warum ist ein Kontextmenü-Eintrag keine Option?
In Fx 135 wurde für Addon-Buttons eine zusätzliche Ebene im DOM eingeführt, die anscheinend für deren zusätzlichen Abstände verantwortlich ist, und zwar eine
<box class="unified-extensions-item-row-wrapper">.
Ich hab jedenfalls erstmal für mich diese Regel ergänzt:
(Genau genommen ein wenig anders, aber das spielt hier jetzt keine Rolle.)
Horstmann, Andreas hat Barbara darum gebeten, seinen Vorschlag zu testen, und sie war zufrieden damit. Ich verstehe Deine Ausführungen nicht. Wenn ein Website-Designer mit negativen Werten arbeiten muss, dann ist das schlechter Stil, wobei es sein kann, dass er ein vorgefundenes Framework nur auf diese Weise übersteuern kann. Wenn ein Privatmensch für sich etwas ändert, dann sehe ich nicht, wo das Problem sein soll.
Die wenigen Ausnahmen in Firefox für margin und Kompagnons sind nach einer Schnellsuche übrigens 742 Funde in 169 CSS-Dateien; eventuell per Javascript eingefügte negative Abstände sind dort nicht enthalten.
Endor hat das Skript in der Version, wie sie oben im Posting vom 22. Januar 2025 um 02:50 zu sehen ist, bei GitHub hochgeladen: Firefox 135/UserCSSLoader.uc.js · Endor8/userChrome.js.
Die Erweiterung hab ich in FF eingefügt, funktioniert aber nicht
Sie funktioniert bei mir bestens. Bist Du in die Einstellungen des Addons gegangen und der dortigen Anleitung gefolgt?
ZitatInstallation abschließen:
Open With benötigt ein Programm außerhalb des Browsers für Systemaufrufe. Weitere Informationen…
- Eine Python-Installation ist erforderlich. Hier erhältlich.
- Python-Skript (Rechtsklick / Ziel speichern unter) z. B. in ~/bin
Öffnen Sie ein Terminal. Rufen Sie das Skript mit dem Parameter "install" auf:
Falls das Skript verschoben wird, wiederholen Sie diesen Schritt.
Nur als Info:
Wenn man auf das Update-Datum verzichten kann, dann ist für die Versionsanzeige ein userChrome-Stil (also CSS) ausreichend: addonlists_show_addon_version_number.css · Aris-t2/CustomCSSforFx.
Ich habe mich u.U. falsch ausgedrückt, ich meinte dieses Konstrukt oder ähnlicht:
Ah, alles klar.
Ps.: mit Zeile 38 komme ich gerade nicht klar:
(Könnte aus einem Toolbar-Script stammen)
Sieht so aus, aber keine Ahnung. Ich habe das jedenfalls dort nicht eingefügt. Endor: Ich hab es selber noch nicht ausprobiert (ich schreibe ja hier gerade), aber die anderen Skripte für einen Toolbarbutton kommen ohne diese Zeile aus, so dass wir sicher annehmen dürfen, sie ist für das Browsertoolbox-Skript ebenfalls unnötig. Noch einmal konkret mit Link zur aktuellen Version: Es geht um Zeile 38.
Das einzige Script, dass ohne CSS auskommt ist das von hier (das Erste):
BeitragRE: Div. Skripte funktionieren im aktuellem Nightly nicht mehr
[…]
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 (...?).
(Quelltext, 49 Zeilen)
Für das von dir verlinkte Script dann evtl: sowas -->
(Quelltext, 49 Zeilen)
Horstmann24. Januar 2025 um 09:48
Da irrst Du. CSS wird hier als Inline-Stil eingefügt, siehe dir Zeile 19 im Scriptcode an.
Interessant wäre es gewesen, wenn du auch mitgeteilt hättest, ob der Button bei dir mit dieser Anpassung funktioniert.
Dazu hätte ich es installieren müssen … Interessanterweise hat Aris im jüngsten Update deinen Code in der ersten Version übernommen, aber nur für die vertikale Leiste, wenn ich nichts übersehe habe. Ich werde ihn gleich mal auf dein neuere Version hinweisen.
addonbar_v ist die ID für die vertikale Addonbar. Aris hat einfach den Code 1:1 übernommen, und zwar auch in das Skript für die vertikale Leiste.
Das war wohl doch ein Fehler, denn Aris hat es jetzt geändert.
Ich habe jetzt hier nichts gelesen, so dass es sein kann, dass jemand das Skript schon mit Änderung gepostet hat, aber da Endor sonst „meine“ Versionen übernommen hat, poste ich das geänderte Skript mit Änderung entsprechend Horstmann, das so bei Endor anscheinend noch gar nicht vorkommt, nur ein ähnliches für die Browser-Konsole, die man aber auch über das allgemeinere für die Browser-Werkzeuge erreichen kann. Edit: Stimmt nicht, da hab ich mich von der unterschiedlichen Sortierung nach Groß- und Kleinschreibung verwirren lassen.
/* Button für Browserwerkzeuge, "browsertoolbox.uc.js" von Endor:
* https://www.camp-firefox.de/forum/thema/129954/?postID=1138524#post1138524
* diverse Edits: Speravir
*
* beachte Milupo in https://www.camp-firefox.de/forum/thema/112673/?postID=1189373#post1189373
* und https://www.camp-firefox.de/forum/thema/136363/?postID=1227506#post1227506
*
* letzte Aktualisierung durch Speravir in https://www.camp-firefox.de/forum/thema/138858/?postID=1264875#post1264875
* mit vorgeschlagener Änderung von Horstmann, vgl. https://www.camp-firefox.de/forum/thema/138792/?postID=1264536#post1264536
*/
(function() {
// if (location != 'chrome://browser/content/browser.xhtml')
// return;
if (!window.gBrowser) return;
const
buttonID = 'browser-toolbox-button',
labelText = 'Browser-Werkzeuge',
tooltip = labelText + ' aufrufen',
css =
`#${buttonID} .toolbarbutton-icon {list-style-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACnElEQVR42nWTDUhTURiGv7MhoqGAy0ETECWEQEWMgFkNQcJAhlQImULQYAwQsBEXsYAQB2JUESEkFFBKFsCKyggWYM0CCpqLSDYjNlbqYnNua/93t/fDzQauA8/uzj3f+5w/rhgYGKDSpigKP8wgB8IglM/n/WADpDOZDMmyvFuvrq+vN1ZVVXUjqAOebDbLBV/BBv7r2trajra0tJyIRCIHEomEGpIQ6nK7Ap/P1+10Ou8C1+bm5nIymaTKykouiELgCwQCGovFcsFoNJ6uqalp8Hg8AjU/MEEGMlKjUGe3212Tk5NDbre7NhgMLkNEPJhOp3Mgm0qltK2trcd0Ot2hpqam/Q6HI5DL5byAVBA893q908PDw/OYaQhbknjA7/fT9vY2RaPRXxD7eWWQU2Njoz4ej2t5jPuq4l7W1tamTSbT/MjIyJBWq5X4oNbX12lrayumUqm03OcDxLYqYrEY0w457WnNzc0StrTS0dEhHa+t3dfZ2SktLi6u6PX663w7kI0tLS35NBqNua6urofKNexTWpCkt87qarfbZApyv2S4nSXhcFgpXHfZduo+0R9lakqxV1QEZoQ4vCoEWUCh9bAEz4PlwueBa7arS0GFHOrvjyD87JsQl1wQzPyTlG1XwBeDwcDLS54kmnhJ9CluNisIv/gshPQBgpv/kfAhrfb19XE4Baxn8fOUyGaHJDk6qiD86r0QY28geIKxMyXhW+D74OAghzPgNr9kAcJcbHsMSWZ8XEHY4RDiMgvmC+E7wG/GMgsf0FzRWhQgTA8heQCJPDGhIPxugehqUfDbarVyWC6R7hEgTLgZ2z1I+HZmiT4C4tO4CG6AR+BcMXytV01HGgQlfioUey1TGu+yO0u0YbZeeWfbc38BfeBgl1L+QNgAAAAASUVORK5CYII=')}`;
try {
CustomizableUI.createWidget({
id: buttonID,
type: 'custom',
defaultArea: CustomizableUI.AREA_NAVBAR,
onBuild: function(aDocument) {
let tb_button = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
let props = {
id: buttonID,
class: 'toolbarbutton-1 chromeclass-toolbar-additional',
label: labelText,
tooltiptext: tooltip
};
for (let p in props) tb_button.setAttribute(p, props[p]);
return tb_button;
}
});
CustomizableUI.registerToolbarNode(tb);
} catch(e) {};
document.getElementById(buttonID).addEventListener("click", () => { if(event.button === 0) {
const menuID='menu_browserToolbox',
document=event.target.ownerDocument;
if (!document.getElementById(menuID)) {
let {require} = ChromeUtils.importESModule("resource://devtools/shared/loader/Loader.sys.mjs",{});
require("devtools/client/framework/devtools-browser");
}
document.getElementById(menuID).click();
} });
let stylesheet = document.createProcessingInstruction('xml-stylesheet', 'type="text/css" href="data:text/css;utf-8,' + encodeURIComponent(css) + '"');
document.insertBefore(stylesheet, document.documentElement);
})();
Alles anzeigen
Bei Aris kommt jetzt z. B. die ID addonbar_v nur noch im neuen Zusatzcode vor. Irgendwie scheint mir, als wird hier auf etwas Bezug genommen, was es nicht mehr gibt.
addonbar_v ist die ID für die vertikale Addonbar. Aris hat einfach den Code 1:1 übernommen, und zwar auch in das Skript für die vertikale Leiste.
BrokenHeart: In Zeile 153 steht noch key.setAttribute('oncommand',…. Beachte das jüngste Update von addonbar.uc.js.
und vielleicht auch noch andere
Jemand könnte mal alle durchtesten. Ich kann sagen, dass der Schalter für die Einstellungen funktioniert.
Nachtrag:
Das Problem besteht weiter, obwohl es gerade ein Update für das Skript gab.
Hmmm, bei mir funktioniert der Download-Button mit dem jüngsten Update, soll heißen, er zeigt das Popup.
Wäre vielleicht ganz gut, wenn ein paar Nutzer des Skripts mal ihre Version hier posten würden.
Ich nutze die aktuelle Version bei Aris, die ihrer Anpassung harrt (Entfernung der Zeile mit CustomizableUI.jsm CustomJSforFx/scripts/restart_button.uc.js.
Und bei der Gelegenheit: CustomJSforFx/scripts/restart_item_in_menu.uc.js ist das Skript für die Menüeinträge, das eines der Skripte ist, die einen EventListener benötigen. Siehe dazu Nightly 136 - restart_item_in_menu.uc.js stopped working · Issue #128 · Aris-t2/CustomJSforFx.
Nur als Hinweis: Aris ist informiert. Er ist derzeit aber nicht aktiv, man kann also nicht sagen, ob und wann er Anpassungen durchführen wird.
das hier scheint momentan zu funktionieren; […]
Generell hänge ich einfach den addEventlistener unten an, mit der ID des Buttons, und ausserhalb des oberen Codeabschnitts (...?).
[…]
Für das von dir verlinkte Script dann evtl: sowas […]
Danke, funktioniert!
Endor, ich hänge mein verändertes Skript mal an, damit du es bei GiHub hochladen kannst (aus einem unbekannten Grund werden übrigens beim Einfügen die Leerzeilen entfernt):
/* Entwicklerwerkzeuge-button.uc.js
*
* aborix in https://www.camp-firefox.de/forum/thema/124672/?postID=1078103#post1078103
* Abwandlung eines Skriptes unbekannter Herkunft, vgl. Endor in
* https://www.camp-firefox.de/forum/thema/124672/?postID=1078019#post1078019
* diverse Edits: Speravir
*
* beachte Milupo in https://www.camp-firefox.de/forum/thema/112673/?postID=1189373#post1189373
* und https://www.camp-firefox.de/forum/thema/136363/?postID=1227506#post1227506
*
* letzte Aktualisierung durch Speravir in https://www.camp-firefox.de/forum/thema/138792/?postID=1264613#post1264613
* mit vorgeschlagener Änderung von Horstmann in
* https://www.camp-firefox.de/forum/thema/138792/?postID=1264536#post1264536
*/
(function() {
if (!window.gBrowser) return;
const
buttonID = 'entwickler-toolbarbutton',
labelText = 'Entwicklerwerkzeuge',
tooltip = labelText + ' öffnen/schließen',
css =
`#${buttonID} .toolbarbutton-icon {list-style-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAdUlEQVQokZVSwRHAIAgLPYfoXs7RCTpG53Avt7APrhaFU8gLMEEJAkEQgFbc7IxkVjt0r6Sp7VIVITumBpKt00FA2ThmjXzkfMMWO8EZFSj8LrUyjsG9b9DaJXq+qAIVxEUxtLHpaXE95dj1NcK2rmbwaGJ4Af0tIg00j/6iAAAAAElFTkSuQmCC')}`;
try {
CustomizableUI.createWidget({
id: buttonID,
type: 'custom',
defaultArea: CustomizableUI.AREA_NAVBAR,
onBuild: function(aDocument) {
let tb_button = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
let props = {
id: buttonID,
class: 'toolbarbutton-1 chromeclass-toolbar-additional',
label: labelText,
tooltiptext: tooltip
};
for (let p in props) tb_button.setAttribute(p, props[p]);
return tb_button;
}
});
} catch(e) {};
document.getElementById(buttonID).addEventListener("click", () => { if(event.button === 0) document.getElementById('menu_devToolbox').click(); });
let stylesheet = document.createProcessingInstruction('xml-stylesheet', 'type="text/css" href="data:text/css;utf-8,' + encodeURIComponent(css) + '"');
document.insertBefore(stylesheet, document.documentElement);
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
Zu den IDs: Das halte ich für eine Schwäche vieler Skripte hier. Beispielsweise kommt die ID hier oben inzwischen viermal vor. da ist es wirklich besser, sie einer Variable zuzuweisen und diese dann wiederholt zu verwenden.
Vertikale Toolbar von Aris-t2 funktioniert im heutigen Nightly (24. Jan) nicht mehr
Nur als Hinweis: Ich habe Aris darauf hingewiesen. Er ist derzeit aber nicht aktiv, man kann also nicht sagen, ob und wann er Anpassungen durchführen wird.
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.