Trage ich den Code im Skript ein, tut sich nichts
Zwecks besserer Erkennung in rot der Pfeil.
Teste bitte wenn du magst:
Trage ich den Code im Skript ein, tut sich nichts
Zwecks besserer Erkennung in rot der Pfeil.
Teste bitte wenn du magst:
Ich habe mir aus den zahlreichen "Horstmannschen Varianten" diese Version zusammengestrickt, die für meinen Geschmack perfekt paßt. Änderungen habe ich hauptsächlich im CSS-Bereich vorgenommen, im Abstände etc. anzupassen.
Getestet und angepaßt zur Verwendung in Nightly 139!
Schlaue Sache mit dem padding, notiert!
Teste bitte wenn du magst:
Och komm'.
Kann doch nicht wahr sein!
Habe ich einfach -moz-context-properties: fill !important; vergessen.
Klar geht es dann nicht.
Aber Danke 2002Andreas für den leichten Schlag auf den Hinterkopf.
für den leichten Schlag auf den Hinterkopf.
Aber wirklich nur gaaanz leicht
Habe ich einfach -moz-context-properties: fill !important; vergessen.
Hast du nicht - geht auch ohne
Vergessen hast du dagegen das i in important - und ohne das geht es natürlich nicht...
Hast du nicht - geht auch ohne
Ergänzend: Das funktioniert deswegen ohne, weil das bereits standardmäßig im CSS von Firefox für diese Stelle steht. Beziehungsweise steht dort sogar -moz-context-properties: fill, fill-opacity, d.h. mit -moz-context-properties: fill !important wird Firefox sogar gegenüber dem Standard-CSS eingeschränkt.
Vergessen hast du dagegen das i in important - und ohne das geht es natürlich nicht...
![]()
Ein Hoch auf die Syntax-Hervorhebung in unserem Forum. Falsche Schreibweise: dünn und schwarz, korrekte Schreibweise: fett und orange.
Hast du nicht - geht auch ohne
Vergessen hast du dagegen das i in important - und ohne das geht es natürlich nicht...
![]()
Noch dümmer!
Nutze nun ein eigenes Symbol und diesen Code:
menupopup > menu::after {
content: "";
background-image: url("${ProfilePath}/${icon3}")!important;
height: ${cs_icon_size};
height: ${cs_icon_size};
fill: ${cs_icon_color_3} !important;
}
Danke an alle.
Ein Hoch auf die Syntax-Hervorhebung in unserem Forum.
Ja, hätte mir auffallen müssen.
Kommt davon, wenn man zwischen kochen und coden hin und her springt.
War aber einfach mal wieder zu ungeduldig.
Oooops....
Wenn's jetzt noch eine Möglichkeit gäbe, die Reihenfolge von Icon und Zähler einfach umzukehren, ohne neues Script/CSS.
Dank grisu2099 und seinem width/padding Ansatz, evtl. so; die Icons sind hier jetzt auf - hoffentlich noch aktuelle - Fx eigene Icons eingestellt, sollten eigentlich direkt anzeigen ohne Änderungen.
Zeilen 47 bis 52, den gewünschten Codeblock einfach ein/auskommentieren; gerne testen bei Interesse; den Schrägstrich bekommt man da auch noch leicht rein.
//bmcount_2.uc.js RC1, Korrektur für Firefox 139 Nightly TEST
//basiert auf Script von BrokenHeart =>
//https://www.camp-firefox.de/forum/thema/136572-nur-die-anzeige-der-ordner-lesezeichenanzahl-in-einer-anderen-farbe-darstellen/?postID=1269879#post1269879
(function() {
if (!window.gBrowser)
return;
setTimeout(function() {
setFunction();
},50);
//Custom icons in profile/chrome/icons folder
let ProfilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons'));
let icon1 = "YourFolderIcon.png" // Custom Folder Icon
let icon2 = "YourLinkIcon.svg" // Custom Link Icon
function setFunction() {
const css =`
/** Basiseinstellungen **/
#bmContent {
display: flex !important;
margin-inline: auto 0 !important; /* Counter rechtsbuendig */
height: var(--bm_icon_size);
/* --bm_icon_size = 16px Firefox Standard */
--bm_icon_size: 16px;
/* min. Abstand links Alles für enge Popups, rechts 1ter zu 2tem Counter */
--bm_margin-inline: 16px 8px;
/** Feste Breite der Counter, abhaengig von Anzahl Ziffern/Fontart und Grösse -> Icons untereinander auf gleicher Hoehe **/
/* Fontbreite (hier fuer 2 Ziffern mit Klammern, Systemfont Mac) */
--bm_width_one: 2.1em;
--bm_width_two: 2.1em;
/* Abstand zwischen Icon und Ziffern */
--bm_space_one: 2px;
--bm_space_two: 2px;
/**** Reihenfolge Icon / Ziffern ****/
/* Icon links / Ziffern rechts => */
--bm_padding_one: calc(var(--bm_icon_size) + var(--bm_space_one)) 0;
--bm_padding_two: calc(var(--bm_icon_size) + var(--bm_space_two)) 0;
--bm_bg_position: center left;
/** Icon rechts / Ziffern links => **/
/*--bm_padding_one: 0 calc(var(--bm_icon_size) + var(--bm_space_one));
--bm_padding_two: 0 calc(var(--bm_icon_size) + var(--bm_space_two));
--bm_bg_position: center right;*/
/** Icons **/
/** Use Custom Icons, comment to disable => **/
/*--bm_icon_image_1: url("${ProfilePath}/${icon1}");*/
/*--bm_icon_image_2: url("${ProfilePath}/${icon2}");*/
/* Use Firefox Icons, comment to disable => */
--bm_icon_image_1: url("chrome://global/skin/icons/folder.svg");
--bm_icon_image_2: url("chrome://browser/skin/bookmark-hollow.svg");
}
/** Basiseinstellungen Ende **/
/* Counter #1 Folder */
#bmContent::before {
content: attr(data-value1);
display: flex;
width: var(--bm_width_one);
/*width: calc(var(--bm_icon_size) + 2px);*/
padding-inline: var(--bm_padding_one);
justify-content: end;
align-items: center;
margin-inline: var(--bm_margin-inline);
background-image: var(--bm_icon_image_1);
background-position: var(--bm_bg_position);
background-repeat: no-repeat;
background-size: var(--bm_icon_size) var(--bm_icon_size);
/*color: purple !important;*/
/*fill: rgba(255, 150, 68, 1.0) !important;*/ /* Farben Text / svg Icons aendern */
/*outline: 1px solid purple !important;*/
}
/* Counter #2 Links */
#bmContent::after {
content: attr(data-value2);
display: flex;
width: var(--bm_width_two);
padding-inline: var(--bm_padding_two);
align-items: center;
justify-content: end;
background-image: var(--bm_icon_image_2);
background-position: var(--bm_bg_position);
background-repeat: no-repeat;
background-size: var(--bm_icon_size) var(--bm_icon_size);
/*color: purple !important;*/
/*fill: rgba(255, 150, 68, 1.0) !important;*/ /* Farben Text / svg Icons aendern */
/*outline: 1px solid orange !important;*/
}
/** Optionale Extras **/
/* Adjust/hide if count = 0 */
/* Hide/Dim #1 icon + counter if Count = 0 */
#bmContent[data-value1="[0]"]::before,
#bmContent[data-value1="0"]::before,
#bmContent[data-value1="(0)"]::before {
opacity: 0.2;
}
/* Dim #2 icon + counter if Count = 0 */
#bmContent[data-value2="[0]"]::after,
#bmContent[data-value2="0"]::after,
#bmContent[data-value2="(0)"]::after {
opacity: 0.5;
}
`;
const sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService);
const uri = Services.io.newURI('data:text/css,' + encodeURIComponent(css));
sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);
let bmbMenu = document.getElementById('bookmarks-menu-button');
let bookMenu = document.getElementById('bookmarksMenu');
let persToolBar = document.getElementById('PersonalToolbar');
if(bmbMenu)
bmbMenu.addEventListener('popupshowing', onPopupShowing );
if(bookMenu)-
bookMenu.addEventListener('popupshowing', onPopupShowing );
if(persToolBar)
persToolBar.addEventListener('popupshowing', onPopupShowing );
}
function onPopupShowing(aEvent) {
let popup = aEvent.originalTarget;
for (let item of popup.children) {
if (item.localName != 'menu' || item.id?.startsWith('history'))
continue;
setTimeout(() => {
let itemPopup = item.menupopup;
itemPopup.hidden = true;
itemPopup.collapsed = true;
itemPopup.openPopup();
itemPopup.hidePopup();
let menuitemCount = 0;
let menuCount = 0;
for (let subitem of itemPopup.children) {
if (subitem.classList.contains('bookmark-item') && !subitem.disabled && !subitem.hidden) {
if (subitem.localName == 'menuitem') {
menuitemCount++;
} else if (subitem.localName == 'menu') {
menuCount++;
}
}
}
itemPopup.hidden = false;
itemPopup.collapsed = false;
// Eigenes Element für Zaehler
let bmCounta = item.childNodes[1];
bmCounta.innerHTML = ""
let bmContent = document.createElement("bmContent");
bmContent.id = "bmContent";
bmCounta.appendChild(bmContent);
//Zähler Optionen, mit, ohne eckige, runde Klammern
//let strCountOut1 = "" + menuCount + ""; // Has no brackets
//let strCountOut1 = "(" + menuCount + ")"; // Has round brackets
let strCountOut1 = "[" + menuCount + "]"; // Has square brackets
bmContent.setAttribute('data-value1', strCountOut1);
//let strCountOut2 = "" + menuitemCount + ""; // Has no brackets
//let strCountOut2 = "(" + menuitemCount + ")"; // Has round brackets
let strCountOut2 = "[" + menuitemCount + "]"; // Has square brackets
bmContent.setAttribute('data-value2', strCountOut2);
// Extra class und Attribut parent; va für 0 + 0
if (bmContent.parentElement) {
bmContent.parentElement.classList.add('pfeil');
bmContent.parentElement.setAttribute('data-value3', strCountOut1 + strCountOut2);
}
}, 100);
}
}
})();
Alles anzeigen