Neue, von mir angepasste Version.
Frage zu den Zeilen 6-7: Müssen die Profile wirklich in %APPDATA% liegen, oder können die auch auf anderen Laufwerken liegen?
Neue, von mir angepasste Version.
Frage zu den Zeilen 6-7: Müssen die Profile wirklich in %APPDATA% liegen, oder können die auch auf anderen Laufwerken liegen?
Oh, bei mir hieß das Skript für diesen Test einfach # Statusleiste.js.
Könnte tatsächlich mit der Bezeichnung zusammenhängen.
Werde ich sogleich mal ausprobieren.
Also _Statusleiste.uc.js ja?
Nachtrag!
Is' ja'n Ding!
Der Fehler ist gefunden
Es ist in der Tat der Skriptname.
Frage zu den Zeilen 6-7: Müssen die Profile wirklich in %APPDATA% liegen, oder können die auch auf anderen Laufwerken liegen?
Natürlich nicht! Wenn Du mit der Anpassung von Pfadangeben vertraut bist,
kannst Du "Deine" Profile, sowie "Deine" Grafiken ablegen, wo Du willst!
Ich habe das nur so gemacht, weil es halt einfach sein soll.
Gibt ja genug Anwender, die solche Skripte einfach so nutzen wie sie sind,
weil sie eben mit JavaScript so gar nichts am Hut haben.
Es ist in der Tat der Skriptname.
Dachte ich mir schon.
Wir hatten das Thema vor Jahren schon.
Die Skripte werden beim Start vom Fx wohl der Reihenfolge nach aus dem Ordner chrome geladen. Und wenn dann about:about vor der Leiste geladen wird, gibt es das Problem. Betrifft aber auch andere Funktionen/Skripte die aus der Zusatzleiste gestartet werden.
Die Zusatzleiste sollte/muss also immer ganz oben als erstes stehen, zumindest vor den Skripten die aus der Zusatzleiste genutzt werden.
Ja die Scripte werden in der Reihenfolge wie sie im Ordner sind geladen.
Daher habe ich hier alle Scripe die mit Leisten zu tun haben bei der Bezeichnung
eine 0- Null mit Bindestrich voran gestellt.
Also zbs: 0-Leiste1.uc.js , 0-Leiste2.uc.js usw.
So werden die als erstes geladen und dann erst andere Scripte die sich auf diese
Leisten beziehen.
Mfg.
Endor
So werden die als erstes geladen
Es ist in der Tat der Skriptname.
Dachte ich mir schon.
Die Skripte werden beim Start vom Fx wohl der Reihenfolge nach aus dem Ordner chrome geladen. Und wenn dann about:about vor der Leiste geladen wird, gibt es das Problem. Betrifft aber auch andere Funktionen/Skripte die aus der Zusatzleiste gestartet werden.
Ahhh, deshalb habe ich vor langem mal meinen Scripts die komischen Namen gegeben...
Der alphabetischen/numerischen Reihenfolge der Dateinamen nach, nur um das Detail hizuzufügen; manch einer hat vielleicht seine Ordner Dateien visuell nach Erstellungsdatum, Art etc. sortiert.
Was aber immer noch nicht erklärt, warum bei geldhuegel manches Script fuktioniert und manches nicht - falls wir davon ausgehen können das die Skriptnamen jeweils die gleichen blieben.
Natürlich nicht!
So weit so gut, mit welchem Script für eine vertikale Toolbar läuft das Script, mit dem ↓ läuft es hier nicht?
// 'Vertical Add-on Bar' script for Firefox by Aris
//
// no 'close' button
// 'toggle' toolbar with 'Ctr + Alt + /' on Windows/Linux or 'Cmd + Alt + /' on macOS
// optional toggle button hides the toolbar temporarily, it gets restored on every restart
// 'Vertical Add-on Bar' entry is only visible in toolbars context menu when in customizing mode
//
// flexible spaces on toolbar work 'vertically'
// toolbar can be on the left or on the right
// toolbar is display horizontally in customizing mode
// [!] Fix for WebExtensions with own windows by 黒仪大螃蟹 (for 1-N scripts)
// Components.utils.import("resource:///modules/CustomizableUI.jsm");
ChromeUtils.importESModule("resource:///modules/CustomizableUI.sys.mjs");
var AddonbarVertical = {
init: function() {
if (location != 'chrome://browser/content/browser.xhtml')
return;
/* blank tab workaround */
try {
if(gBrowser.selectedBrowser.getAttribute('blank')) gBrowser.selectedBrowser.removeAttribute('blank');
} catch(e) {}
var addonbar_v_label = 'Vertical Add-on Bar'; // toolbar name
var button_label = 'Toggle vertical Add-on Bar'; // Toggle button name
var addonbar_v_togglebutton = true; // display toggle button for vertical toolbar (true) or not (false)
var addonbar_v_on_the_left = false; // display vertical toolbar on the left (true) or the right (false)
var style_addonbar_v = true; // apply default toolbar appearance/colors to vertical add-on bar
var addonbar_v_width = '22px'; // toolbar width
var compact_buttons = true; // compact button size (true) or default button size (false)
try {
if(document.getElementById('toolbox_abv') == null && document.getElementById('addonbar_v') == null) {
var toolbox_abv = document.createXULElement('toolbox');
toolbox_abv.setAttribute('orient','horizontal');
toolbox_abv.setAttribute('id','toolbox_abv');
toolbox_abv.setAttribute('insertbefore','sidebar-box');
var tb_addonbarv = document.createXULElement('toolbar');
tb_addonbarv.setAttribute('id','addonbar_v');
tb_addonbarv.setAttribute('customizable','true');
tb_addonbarv.setAttribute('class','toolbar-primary chromeclass-toolbar browser-toolbar customization-target');
tb_addonbarv.setAttribute('mode','icons');
tb_addonbarv.setAttribute('iconsize','small');
tb_addonbarv.setAttribute('toolboxid','navigator-toolbox');
tb_addonbarv.setAttribute('orient','vertical');
tb_addonbarv.setAttribute('flex','1');
tb_addonbarv.setAttribute('context','toolbar-context-menu');
tb_addonbarv.setAttribute('toolbarname', addonbar_v_label);
tb_addonbarv.setAttribute('label', addonbar_v_label);
tb_addonbarv.setAttribute('lockiconsize','true');
tb_addonbarv.setAttribute('defaultset','spring');
toolbox_abv.appendChild(tb_addonbarv);
CustomizableUI.registerArea('addonbar_v', {legacy: true});
setTimeout(function(){
CustomizableUI.registerArea('addonbar_v', {legacy: true});
},2000);
CustomizableUI.registerToolbarNode(tb_addonbarv);
if(addonbar_v_on_the_left) {
document.getElementById('browser').insertBefore(toolbox_abv,document.getElementById('browser').firstChild);
}
else {
document.getElementById('browser').appendChild(toolbox_abv);
}
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
try {
if(document.querySelector('#browser').getAttribute('hidden') || document.querySelector('#main-window').getAttribute('customizing')) {
document.querySelector('#addonbar_v').setAttribute('orient','horizontal');
document.querySelector('#navigator-toolbox').appendChild(document.querySelector('#addonbar_v'));
}
else {
document.querySelector('#addonbar_v').setAttribute('orient','vertical');
document.querySelector('#toolbox_abv').appendChild(document.querySelector('#addonbar_v'));
}
} catch(e){}
});
});
observer.observe(document.querySelector('#main-window'), { attributes: true, attributeFilter: ['customizing'] });
try {
Services.prefs.getDefaultBranch('browser.vaddonbar.').setBoolPref('enabled',true);
setToolbarVisibility(document.getElementById('addonbar_v'), Services.prefs.getBranch('browser.vaddonbar.').getBoolPref('enabled'));
setToolbarVisibility(document.getElementById('toolbox_abv'), Services.prefs.getBranch('browser.vaddonbar.').getBoolPref('enabled'));
} catch(e) {}
if(addonbar_v_togglebutton) {
CustomizableUI.createWidget({
id: 'togglebutton_addonbar_v', // button id
defaultArea: CustomizableUI.AREA_NAVBAR,
removable: true,
label: button_label, // button title
tooltiptext: button_label, // tooltip title
onClick: function(event) {
if(event.button==0) {
var windows = Services.wm.getEnumerator(null);
while (windows.hasMoreElements()) {
var win = windows.getNext();
var vAddonBar = win.document.getElementById('addonbar_v');
setToolbarVisibility(vAddonBar, vAddonBar.collapsed);
var vAddonBarBox = win.document.getElementById('toolbox_abv');
setToolbarVisibility(vAddonBarBox, vAddonBarBox.collapsed);
Services.prefs.getBranch('browser.vaddonbar.').setBoolPref('enabled',!vAddonBar.collapsed);
if(!vAddonBar.collapsed)
win.document.querySelector('#togglebutton_addonbar_v').setAttribute('checked','true');
else win.document.querySelector('#togglebutton_addonbar_v').removeAttribute('checked');
}
}
},
onCreated: function(button) {
if(Services.prefs.getBranch('browser.vaddonbar.').getBoolPref('enabled'))
button.setAttribute('checked','true');
return button;
}
});
}
// Press 'Ctr + Alt + /' on Windows/Linux and 'Cmd + Alt + /' on macOS to toggle vertical add-on bar
var key = document.createXULElement('key');
key.id = 'key_toggleVAddonBar';
key.setAttribute('key', '/');
key.setAttribute('modifiers', 'accel,alt');
key.addEventListener('command', () => {
var windows = Services.wm.getEnumerator(null);
while (windows.hasMoreElements()) {
var win = windows.getNext();
var vAddonBar = win.document.getElementById('addonbar_v');
setToolbarVisibility(vAddonBar, vAddonBar.collapsed);
var vAddonBarBox = win.document.getElementById('toolbox_abv');
setToolbarVisibility(vAddonBarBox, vAddonBarBox.collapsed);
Services.prefs.getBranch('browser.vaddonbar.').setBoolPref('enabled',!vAddonBar.collapsed);
if(!vAddonBar.collapsed)
win.document.querySelector('#togglebutton_addonbar_v').setAttribute('checked','true');
else win.document.querySelector('#togglebutton_addonbar_v').removeAttribute('checked');
}
});
// key.setAttribute('oncommand',`
// var windows = Services.wm.getEnumerator(null);
// while (windows.hasMoreElements()) {
// var win = windows.getNext();
// var vAddonBar = win.document.getElementById('addonbar_v');
// setToolbarVisibility(vAddonBar, vAddonBar.collapsed);
// var vAddonBarBox = win.document.getElementById('toolbox_abv');
// setToolbarVisibility(vAddonBarBox, vAddonBarBox.collapsed);
// Services.prefs.getBranch('browser.vaddonbar.').setBoolPref('enabled',!vAddonBar.collapsed);
// if(!vAddonBar.collapsed)
// win.document.querySelector('#togglebutton_addonbar_v').setAttribute('checked','true');
// else win.document.querySelector('#togglebutton_addonbar_v').removeAttribute('checked');
// }
// `);
document.getElementById('mainKeyset').appendChild(key);
}
} catch(e) {}
// style toolbar & toggle button
var addonbar_v_style = '';
var togglebutton_addonbar_v_style = '';
if(style_addonbar_v) {
var end_border =`
#addonbar_v { \
border-inline-end: 1px solid var(--sidebar-border-color,rgba(0,0,0,0.1)) !important; \
} \
`;
if(!addonbar_v_on_the_left) {
end_border =`
#addonbar_v { \
border-inline-start: 1px solid #B2B2B2 !important; \
} \
`;
}
addonbar_v_style =` \
#addonbar_v { \
appearance: none !important; \
background-color: var(--toolbar-bgcolor); \
background-image: var(--toolbar-bgimage); \
background-clip: padding-box; \
color: var(--toolbar-color, inherit); \
padding-bottom: 1px !important; \
} \
:root[lwtheme] #addonbar_v { \
background: var(--lwt-accent-color) !important; \
} \
:root[lwtheme][lwtheme-image='true'] #addonbar_v { \
background: var(--lwt-header-image) !important; \
background-position: 0vw 50vh !important; \
} \
#main-window:not([customizing]) #toolbox_abv:not([collapsed='true']), \
#main-window:not([customizing]) #addonbar_v:not([collapsed='true']) { \
min-width: `+addonbar_v_width+`; \
width: `+addonbar_v_width+`; \
max-width: `+addonbar_v_width+`; \
} \
#main-window[chromehidden='menubar toolbar location directories status extrachrome '] #toolbox_abv:not([collapsed='true']), \
#main-window[chromehidden='menubar toolbar location directories status extrachrome '] #addonbar_v:not([collapsed='true']), \
#main-window[sizemode='fullscreen'] #toolbox_abv:not([collapsed='true']), \
#main-window[sizemode='fullscreen'] #addonbar_v:not([collapsed='true']) { \
min-width: 0px; \
width: 0px; \
max-width: 0px; \
} \
#main-window[customizing] #addonbar_v { \
outline: 1px dashed !important; \
outline-offset: -2px !important; \
} \
#addonbar_v toolbarbutton { \
min-height: 20px !important; \
max-height: 20px !important; \
min-width: 20px !important; \
max-width: 20px !important; \
background-color: #474747 !important; \
margin: 1px 1px 0 1px !important; \
} \
#addonbar_v toolbar .toolbarbutton-1 { \
min-height: 22px !important; \
max-height: 22px !important; \
min-width: 22px !important; \
max-width: 22px !important; \
background-color: #474747 !important; \
margin: 1px 1px 0 1px !important; \
} \
#addonbar_v toolbarbutton:hover, \
#addonbar_v toolbar .toolbarbutton-1:hover { \
background-color: #D1E2F2 !important; \
color: #000 !important; \
fill: #000 !important; \
} \
#addonbar_v toolbarbutton#uc-restart { \
background-color: #F20 !important; \
} \
#addonbar_v toolbarbutton#uc-restart image { \
fill: #FFF !important; \
} \
#addonbar_v toolbarbutton#uc-restart:hover { \
background-color: #D1E2F2 !important; \
} \
#addonbar_v toolbarbutton#uc-restart:hover image { \
fill: #F20 !important; \
} \
#addonbar_v toolbarbutton#privatebrowsing-button { \
background-color: #8000D7 !important; \
} \
#addonbar_v toolbarbutton#privatebrowsing-button image { \
fill: #FFF !important; \
} \
#addonbar_v toolbarbutton#privatebrowsing-button:hover { \
background-color: #D1E2F2 !important; \
} \
#addonbar_v toolbarbutton#privatebrowsing-button:hover image { \
fill: #8000D7 !important; \
} \
#addonbar_v toolbarbutton#restart-button { \
background-color: #F20 !important; \
} \
#addonbar_v toolbarbutton#restart-button:hover { \
background-color: #D1E2F2 !important; \
} \
#addonbar_v #cookieautodelete_kennydo_com-browser-action { \
min-height: 33px !important; \
} \
#addonbar_v #cookieautodelete_kennydo_com-browser-action > .toolbarbutton-badge-stack { \
margin-top: -13px !important; \
} \
#addonbar_v #cookieautodelete_kennydo_com-browser-action > .toolbarbutton-badge-stack .toolbarbutton-badge { \
min-width: 18px !important; \
border-radius: 0px !important; \
margin-top: 20px !important; \
margin-right: 1px !important; \
} \
#addonbar_v #cookieautodelete_kennydo_com-browser-action:hover > .toolbarbutton-badge-stack .toolbarbutton-badge { \
background-color: #D1E2F2 !important; \
color: #000 !important; \
} \
#addonbar_v > toolbarbutton#restart-button .toolbarbutton-icon { \
margin: 3px !important; \
} \
#addonbar_v > toolbarbutton#print-toolbarbutton { \
border-radius: 0 !important; \
border: 0 !important; \
background-color: #474747 !important; \
} \
#addonbar_v > toolbarbutton#print-toolbarbutton:hover { \
background-color: #D1E2F2 !important; \
} \
#unified-extensions-button[hidden]{ \
visibility: visible !important; \
display: flex !important; \
} \
#addonbar_v toolbaritem separator { \
display: none !important; \
} \
#main-window:not([customizing]) #addonbar_v > toolbaritem { \
writing-mode: vertical-rl !important; \
text-orientation: mixed !important; \
transform: rotate(0deg) !important; \
} \
#main-window:not([customizing]) #addonbar_v > toolbaritem menupopup { \
max-height: 170px !important; \
max-width: 170px !important; \
transform: rotate(-90deg) !important; \
} \
#main-window:not([customizing]) #addonbar_v > toolbaritem .toolbarbutton-badge { \
transform: rotate(-90deg) !important; \
position: absolute !important; \
padding: 1px 2px !important; \
top: -4px !important; \
} \
#main-window:not([customizing]) #addonbar_v #search-container, \
#main-window:not([customizing]) #addonbar_v #wrapper-search-container { \
flex: unset !important; \
} \
#main-window:not([customizing]) #addonbar_v #search-container { \
min-width: unset !important; \
width: unset !important; \
height: 100px !important; \
&[width] { \
flex: unset !important; \
} \
} \
#main-window:not([customizing]) #addonbar_v #zoom-reset-button > .toolbarbutton-text { \
min-width: unset !important; \
min-height: unset !important; \
} \
#main-window:not([customizing]) #addonbar_v #zoom-reset-button:not([label]) { \
display: none !important; \
} \
#main-window:not([customizing]) #addonbar_v .toolbarbutton-combined-buttons-dropmarker > .toolbarbutton-icon { \
width: unset !important; \
height: 16px !important; \
} \
#addonbar_v #aboutabout-ToolBarButton:hover {\
list-style-image: url("file:///H:/Profile/Firefox/Fx57-H-Default/chrome/icons/a-a-b.png") !important; \
} \
`+end_border+`
`;
}
var addonbar_right = '';
if(!addonbar_v_on_the_left) {
addonbar_right =`
#toolbox_abv{ \
order: 10 !important; \
} \
`;
}
if(addonbar_v_togglebutton) {
togglebutton_addonbar_v_style =`
#togglebutton_addonbar_v .toolbarbutton-icon { \
list-style-image: url('chrome://browser/skin/sidebars.svg'); \
fill: #FF3322; \
} \
#togglebutton_addonbar_v[checked] .toolbarbutton-icon { \
list-style-image: url('chrome://browser/skin/sidebars.svg'); \
fill: #00A600; \
} \
/*#togglebutton_addonbar_v .toolbarbutton-icon { \
list-style-image: url('chrome://browser/skin/forward.svg'); \
fill: red; \
} \
#togglebutton_addonbar_v[checked] .toolbarbutton-icon { \
fill: green; \
} \
#togglebutton_addonbar_v { \
background: url('chrome://browser/skin/back.svg') no-repeat; \
background-size: 35% !important; \
background-position: 10% 70% !important; \
} \
#togglebutton_addonbar_v[checked] { \
transform: rotate(180deg) !important; \
background: url('chrome://browser/skin/back.svg') no-repeat; \
background-position: 10% 30% !important; \
}*/ \
`;
}
var compact_buttons_code = '';
if(compact_buttons)
compact_buttons_code = `
#addonbar_v toolbarbutton .toolbarbutton-icon { \
padding: 0 !important; \
width: 16px !important; \
height: 16px !important; \
} \
#addonbar_v .toolbarbutton-badge-stack { \
padding: 0 !important; \
margin: 0 !important; \
width: 16px !important; \
min-width: 16px !important; \
height: 16px !important; \
min-height: 16px !important; \
} \
#addonbar_v toolbarbutton .toolbarbutton-badge { \
margin-top: 0px !important; \
font-size: 8px !important; \
} \
`;
var uri = Services.io.newURI('data:text/css;charset=utf-8,' + encodeURIComponent(''+addonbar_v_style + togglebutton_addonbar_v_style + addonbar_right + compact_buttons_code), null, null);
var sss = Components.classes['@mozilla.org/content/style-sheet-service;1'].getService(Components.interfaces.nsIStyleSheetService);
sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);
}
}
/* initialization delay workaround */
document.addEventListener('DOMContentLoaded', AddonbarVertical.init(), false);
/* Use the below code instead of the one above this line, if issues occur */
/* setTimeout(function(){
AddonbarVertical.init();
},2000);
*/
Alles anzeigen
So weit so gut, mit welchem Script für eine vertikale Toolbar läuft das Script, mit dem ↓ läuft es hier nicht?
Nur ein Versuch
Die Datei heißt ja irgendwas mit V, nehme ich an.
Setze doch einfach mal 0-"Skriptname" davor und teste dann noch mal.
ODER, versuche doch mal dieses Skript aus.
So weit so gut, mit welchem Script für eine vertikale Toolbar läuft das Script, mit dem ↓ läuft es hier nicht?
Nur ein Versuch
Die Datei heißt ja irgendwas mit V, nehme ich an.
Setze doch einfach mal 0-"Skriptname" davor und teste dann noch mal.
Geeeenau, dann funktionieren die Custom Buttons in der Leiste, wie von 2002Andreas in #43 beschrieben.
Nur ein Versuch
![]()
Die Datei heißt ja irgendwas mit V, nehme ich an.
Setze doch einfach mal 0-"Skriptname" davor und teste dann noch mal.
Der Versuch hat schon zum Ziel geführt, Dankeschön, nun kann ich die andern Buttons auch noch einmal testen.
Horstmann das Skript von 2002Andreas hat in der Statusleiste auch nicht funktioniert. Aber der Tipp von ihm, die Datei umzubenennen, hat den gewünschten Erfolg. Die Skripte arbeiten nun. Der Name der Leiste wurde von mir damals so gewählt, weil angeraten wurde, sie mit dem Unterstrich zu versehen, damit sie als erstes geladen wird. Das ist anscheinend heute nicht mehr nötig.
Nochmals vielen Dank an alle Berater. Wieder ein Rätsel gelöst.
Die Skripte arbeiten nun.
Sehr schön
Ich bin ein Depp.
Ich habe anscheinend nach der Übertragung der Button in die Addonleiste vergessen, den Firefox neu zu starten. So hat es einmal funktioniert und dann doch nicht mehr. Aber egal. Ich lasse nun die Buttons oben.
und dann doch nicht mehr.
Also aus der neuen Leiste hat es dann nur 1x funktioniert!?
Du hast die neue Leiste umbenannt zu?
So muss die Reihenfolge im chrome Ordner aussehen:
Die Leiste muss ganz oben stehen.
Sie muss bei dir vor about:about.uc.js stehen!
2002Andreas :da hatte ich dich dann nicht richtig verstanden. Ich habe deinen Vorschlag "Addonleiste" direkt übernommen, ohne daran zu denken, dass das Skript im Ordner hinter die beiden about:... rutscht. Dank deines neuen Tipps ist nun wirklich alles in Ordnung.
Meine 78 Jahre machen sich doch bemerkbar.
Dank deines neuen Tipps ist nun wirklich alles in Ordnung.
Das freut mich dann
Meine 78 Jahre machen sich doch bemerkbar.
Ach was, das liegt nur am Wetter