- Firefox-Version
- 108.02 (64Bit)
- Betriebssystem
- Windows 10 Version 22H2 (Build 19045.2364)
Es gibt was Neues.
Das JavaScript würde von mir überarbeitet,
es wurden Fehler korrigiert und Anpassungen, wie z.B. die Pfadangabe geändert.
Und bevor das Script wieder in einem von zwei oder drei Threads "verschwindet",
dachte ich mir, ich mache extra für dieses JavaScript einen neuen auf.
Wer die Entwicklung und die Veränderungen verfolgen möchte =>
Beitrag
RE: Schaltflächenskripte und ihre Symbole
[…]
Direkt in den ersten zwei Absätzen steht, was der Anwendungsfall ist: Wenn jemand bisher einen absoluten Pfad angibt (oder eine Grafik einbettet).
Dein bisheriger Weg mag auch funktionieren. Schöner ist aber sicher der Weg über die PathUtils. Denn mit einem regulären Ausdruck zu arbeiten und etwas zu ersetzen, ist unnötig und ineffizient. Dann kommt dazu, dass der Weg über die Services-Methode weder Leerzeichen kodiert noch das file://-Protokoll ergänzt wird noch den chrome-Ordner…
Direkt in den ersten zwei Absätzen steht, was der Anwendungsfall ist: Wenn jemand bisher einen absoluten Pfad angibt (oder eine Grafik einbettet).
Dein bisheriger Weg mag auch funktionieren. Schöner ist aber sicher der Weg über die PathUtils. Denn mit einem regulären Ausdruck zu arbeiten und etwas zu ersetzen, ist unnötig und ineffizient. Dann kommt dazu, dass der Weg über die Services-Methode weder Leerzeichen kodiert noch das file://-Protokoll ergänzt wird noch den chrome-Ordner…
Sören Hentzschel
Beitrag
RE: Lesezeichensymbolleiste leer
[…]
Das stimmt.
Habe jetzt min. viermal den Thread durchgelesen, aber Horstmann hat recht!
Es wird einem einfach nicht klar, welches Skript nierewa letzten Endes benutzt.
Für den Fall, dass nierewa das Rätsel nicht mehr auflöst,
biete ich hier das von mir überarbeitete und funktionierende JavaScript an.
Es wurde die Animation integriert, sowie eine Tastenkombination!
Bei dem Aktivieren der Leiste mittels Tastenkombination ist zu beachten, dass das automatische Schließen nicht funktioniert
Jedoch…
Das stimmt.
Habe jetzt min. viermal den Thread durchgelesen, aber Horstmann hat recht!
Es wird einem einfach nicht klar, welches Skript nierewa letzten Endes benutzt.
Für den Fall, dass nierewa das Rätsel nicht mehr auflöst,
biete ich hier das von mir überarbeitete und funktionierende JavaScript an.
Es wurde die Animation integriert, sowie eine Tastenkombination!
Bei dem Aktivieren der Leiste mittels Tastenkombination ist zu beachten, dass das automatische Schließen nicht funktioniert
Jedoch…
Mira_Belle
und ganz wichtig
Beitrag
Allgemeine Frage(n) zu JavaScript
Ich habe so ein Problem mit einem Script.
Normalerweise schreibe ich die Variablen ganz an den Anfang,
das ist m.M. übersichtlicher und funktioniert auch meist.
Hier ein Beispiel:
(Quelltext, 87 Zeilen)
Nun gibt es Variablen, die funktionieren nicht, wenn man sie aus der Funktion heraus nimmt und an den Anfang verschiebt,
z.B. let toolbaritem = aDocument.createXULElement('toolbarbutton');,
aber auch let props = ... kann man nicht "rausnehmen".
Warum ist das so?
Noch konfuser macht mich ein anders…
Normalerweise schreibe ich die Variablen ganz an den Anfang,
das ist m.M. übersichtlicher und funktioniert auch meist.
Hier ein Beispiel:
(Quelltext, 87 Zeilen)
Nun gibt es Variablen, die funktionieren nicht, wenn man sie aus der Funktion heraus nimmt und an den Anfang verschiebt,
z.B. let toolbaritem = aDocument.createXULElement('toolbarbutton');,
aber auch let props = ... kann man nicht "rausnehmen".
Warum ist das so?
Noch konfuser macht mich ein anders…
Mira_Belle
JavaScript
// Button_PersonalToolbar.uc.js
// Source file https://www.camp-firefox.de/forum/thema/134920-schaltfl%C3%A4che-um-lesezeichen-leiste-ein-auszublenden/?postID=1213680#post1213680
// Source file https://www.camp-firefox.de/forum/thema/134920-schaltfl%C3%A4che-um-lesezeichen-leiste-ein-auszublenden/?postID=1215809#post1215809
// Source file https://www.camp-firefox.de/forum/thema/135748-lesezeichensymbolleiste-leer/?postID=1216410#post1216410
// Source file https://www.camp-firefox.de/forum/thema/135812-button-personaltoolbar-uc-js/?postID=1216935#post1216935
// PersonalToolbar_ausblenden
// basierend auf den Ideen von BrokenHeart und visoer, Verbesserungen von Horstmann, Korrekturen von Sören und Anpassungen von Mira_Belle
(function ptbut() {
if (location.href !== 'chrome://browser/content/browser.xhtml') return;
let startHeight = '0px'; // '24px' oder '0px' Der Startzustand wird definiert: '24px' startet mit sichtbarer Leiste
let collapse = '0px'; // Leiste nicht sichtbar
let visible = '24px'; // Leiste sichtbar
let autoCloseTime = 5000; // 0 = kein Auto-Close / >0 Zeit in Millisekunden /5000 => 5sec
let intervalID = 0;
let persToolbar = document.getElementById('PersonalToolbar');
try {
CustomizableUI.createWidget({
id: 'PersonalToolbar-button',
type: 'custom',
defaultArea: CustomizableUI.AREA_NAVBAR,
onBuild: function(aDocument) {
let toolbaritem = aDocument.createXULElement('toolbarbutton');
let ProfilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons'));
// ^^ Pfadangabe zum Profilordner und gleich in den entsprechenden Unterordner ^^
let buttonicon = "bookmark-hollow.svg"; // Name & Dateiendung des anzuzeigenden Symbols
let props = {
id: 'PersonalToolbar-button',
class: 'toolbarbutton-1 chromeclass-toolbar-additional',
removable: true,
label: 'Toggle',
tooltiptext: 'Lesezeichenleiste ein-/ausblenden',
style: "list-style-image: url('" + ProfilePath + buttonicon + "');"
};
for(var p in props)
toolbaritem.setAttribute(p, props[p]);
return toolbaritem;
}
});
CustomizableUI.registerToolbarNode(tb);
} catch(e) { };
//----------BEGINN----------------------
// Funktion zum Abfragen der Tastatur ("belauscht" Eingaben)
// Hinweis: Tasten, die anderweitig bereits "abgefangen" werden, ergeben keinen Event
document.addEventListener('keydown', (event) => {
let keyName = event.key;
if (event.altKey && keyName == 'q') { // Funktion wird ausgeführt, wenn "AltGr & q gedrückt werden
onClick();
}
}, false
);
//----------ENDE------------------------
// Anmerkungen und beispiele am Ende des Scriptes
document.getElementById('PersonalToolbar').style.minHeight = '0';
document.getElementById('PersonalToolbar').style.transition = 'all 0.3s steps(6, end)';
if( startHeight === visible || startHeight === collapse ) {
document.getElementById('PersonalToolbar').style.height = startHeight;
}
else {
document.getElementById('PersonalToolbar').style.height = visible;
}
document.getElementById('PersonalToolbar-button').addEventListener( "click", onClick );
function onClick(aEvent) {
if (persToolbar.style.height == '') {
persToolbar.style.height = collapse;
}
else if (persToolbar.style.height == visible) {
persToolbar.style.height = collapse;
}
else if(persToolbar.style.height == collapse) {
persToolbar.style.height = visible;
if(!intervalID && autoCloseTime) {
intervalID = aEvent.target.ownerGlobal.setInterval( autoClose, autoCloseTime );
}
}
}
function autoClose() {
if( intervalID ) {
if( persToolbar.style.height == visible) {
persToolbar.style.height = collapse;
clearInterval(intervalID);
intervalID=0;
}
}
}
})();
// Funktion wird ausgeführt, wenn STRG + Alt + l gedrückt wird
// if (event.ctrlKey && event.altKey && keyName == 'l') {
// Funktion wird ausgeführt, wenn STRG + w gedrückt werden
//if (event.ctrlKey && keyName == 'w') {
// PersonalToolbar.style.setProperty('min-height', '0', 'important' );
// PersonalToolbar.style.setProperty('transition', 'all 0.3s steps(6, end)', 'important' );
Alles anzeigen
Was immer noch nicht funktioniert!
Wenn die Leiste per Tastatur aktiviert wird, funktioniert "autoClose" nicht.
Wenn sie per Button aktiviert wird, funktioniert es.