Thema ist damit erledigt, vielen Dank an alle Beteiligten.
Beiträge von Boersenfeger
-
-
YouTube und AdBlocker sind ein dauerndes Thema. Dort will Youtube immer restriktiver vorgehen, so das es wohl immer wieder zu Kalamitäten kommt.
YouTube geht wieder gegen Adblocker vorIn den USA häuften sich die Ausfallmeldungen für die Seite. Dabei war das Problem ein ganz anderes.www.heise.deEs gibt auch neuere Artikel auf Reddit dazu, dort bin ich aber nicht unterwegs
-
-
Danke 2002Andreas ,damit ist der Eintrag weg!
milupo Ich möchte den Eintrag einfach weg haben, egal ob Deutsch oder Englisch, ich benötige ihn schlicht nicht!
Thema ist damit erledigt, vielen Dank an alle Beteiligten.


-
dann entfern bitte mal Zeile 142 - 147 und teste:
Missverständnis.... Dann ist die Farbe verschwunden, ich möchte aber die Farbe behalten nur oben den hellen Streifen mit der Farbe füllen.
-
Die letzten 10 Einträge stammen von installierten Erweiterungen bzw. Scripts/Codes. Ich versuche dann mal Try and Error...
-
Hm, das ist doch exakt der Code, der da im Moment auch steht...

-
Danke für den Versuch, ich lasse den 3 Zeiler erst mal außen vor, dann kann ich wenigstens agieren. Für das andere Problem hast du keine Idee?

-
-
-
Moin, nach dem heutigen UpDate fehlen mir in about:addons zum einen rechts die Buttons: Einstellungen, deinstallieren etc und auf der linken Seite geht die Hintergrundfarbe dort, wo die Buttons Erweiterungen, Themes, Plugins etc. sind, nicht mehr bis zum oberen Rand. Nach meinen hoffnungslosen Versuchen, den Code zu ändern, lege ich ihn nun in eure bewährten Hände.
CSS
Alles anzeigen/* Addons-Manager Nightly */ /* Versionsnummer der Addons wird angezeigt */ @-moz-document url-prefix(chrome://mozapps/content/extensions/aboutaddons.html), url-prefix(chrome://mozapps/content/extensions/extensions.xhtml), url-prefix(about:addons){ div:not([current-view="updates"]) .addon-name-link[title]::after, div:not([current-view="updates"]) .addon-name[title]::after { display: block !important; content: attr(title) !important; margin-top: -22px !important; } /*restore version number */ div:not([current-view="updates"]) .addon-name-link[title]:not([data-l10n-args])::after, div:not([current-view="updates"]) .addon-name[title]:not([data-l10n-args])::after { display: block !important; content: attr(title) !important; margin-top: -22px !important; } /* Hintergrund der Button auf der rechten Seite */ addon-list addon-card:not([expanded="true"]) panel-list * { background-color: antiquewhite !important; color: black !important; font-weight: bold !important; } addon-list.monochromatic-addon-list section addon-card div.card.addon addon-options panel-list { background: blanchedalmond !important; } @supports -moz-bool-pref("browser.in-content.dark-mode") @media (prefers-color-scheme: dark) addon-list addon-card:not([expanded="true"]) panel-list *, .more-options-menu panel-item { background: black !important; color: white !important; } addon-list panel-item { margin: 0 1px !important; box-shadow: inset 0 0 3px 3px grey; } /* Reduce Size of default Buttons */ link:is([href$="panel-item.css"],[href$="panel-list.css"]) ~ button { width: unset !important; padding: 10px 24px !important; /* 5px ist die Höhe der rechten Button */ } /* Entfernt den Drei-Punkte-Button aus dem Container */ addon-card .more-options-button { display: none !important; } /* Remove Button Icon */ addon-list panel-item { --icon: unset !important; } /* Restore Buttons */ addon-list .more-options-menu :is(addon-options,plugin-options) panel-list { position: relative !important; display: block !important; overflow: hidden !important; margin-top: -25px; background: unset !important; border: unset !important; box-shadow: unset !important; min-width: unset !important; width: unset !important; } div.arrow.top + div.list { display: flex !important; flex-flow: row wrap !important; justify-content: flex-start !important; } div[role="presentation"].list { display: flex !important; flex-flow: row wrap !important; justify-content: flex-start !important; } panel-item[action="preferences"] { order: -1; } panel-item[badged] { border: 1px solid Highlight !important; } panel-item[badged]::after, :host([badged]) button::after, link:is([href$="panel-item.css"],[href$="panel-list.css"]) ~ button::after, :is(addon-options,plugin-options) button::after { display: none !important; content: unset !important; } addon-page-options panel-list { min-width: unset !important; width: auto !important; max-width: 300px !important; z-index: 1000 !important; } addon-page-options panel-list panel-item { min-width: 280px !important; width: 280px !important; } .sticky-container { z-index: 1000 !important; } link:-is([href$="panel-item.css"],[href$="panel-list.css"]) ~ button label[accesskey] { padding-inline-start: 0px !important; padding-top: 3px !important; padding-bottom: 3px !important; min-width: 260px !important; width: 260px !important; } addon-page-options panel-list panel-item[accesskey][checked] { background: url("chrome://global/skin/icons/check.svg") 5px no-repeat !important; } addon-list addon-card:not([expanded="true"]) panel-list { display: block !important; box-shadow: none !important; border: none !important; right: 45px !important; /* Abstand der Button bei Erweiterungen vom rechten Rand */ } /* Abstand zwischen den Containern */ addon-card .addon { margin: 5px !important; } /* Höhe der Container */ addon-list[type="extension"]{ --card-padding: 19px } addon-card .addon-card-collapsed { margin-bottom: 2px !important; /* Button rechts Abstand vom oberen Rand */ } /* Abstand der Button vom rechten Rand bei Themes, Plugins, Wörterbücher, usw.*/ addon-list:is([type="theme"],[type="plugin"],[type="dictionary"]) addon-card:not([expanded="true"]) panel-list { right: 55px !important; } /* Abstand der Button vom oberen Rand bei Plugins, Wörterbücher, usw. */ addon-list addon-card:not([expanded="true"]) panel-list { margin-top: -42px !important; } /* Abstand der Button vom oberen Rand bei Themes */ addon-list:is([type="theme"]) addon-card:not([expanded="true"]) panel-list { margin-top: -46px !important; margin-left: -100px !important; } /* Entfernung Bereich Farbgebungen */ addon-list.monochromatic-addon-list { display: none !important; } /* Ausdehnung der Container zum rechten Rand */ .addon.card { width: 1400px; } input[type="checkbox"].toggle-button { margin-right: 430px !important; /* blauer Button -Deaktivieren/Aktivieren- Abstand vom rechten Rand */ } /* Nummerierung der installierten Erweiterungen im AddonsManager */ body { counter-reset: section !important; } #main > addon-list:nth-child(1) > section:nth-child(2) > addon-card:nth-child(n+1) > div:nth-child(1) > div:nth-child(2)::before { font-size:18px!important; color: red !important; font-weight: bold !important; counter-increment: section; content: counter(section, decimal-leading-zero)". "; margin-left: -8px !important; padding-right: 8px !important; margin-top:4px!important; } /* Abstand der Button zum linken Rand */ #categories > .category, #preferencesButton, #helpButton, #addonsButton { margin-left: 5px !important; } #categories > .category:not([disabled]){ background-color: gainsboro !important;/*Hintergrundfarbe vom Button*/ margin-top: 2px !important; /*Abstand zum Button darüber*/ border-radius: 60px !important;/*Rundung vom Button*/ box-shadow: inset 0 0 5px 5px #888; } /* Aktiver Button rot, Schrift weiß */ #categories > .category[selected]{ color: white !important; background-color: red !important; margin-top: 1px !important; border-radius: 60px !important; box-shadow: inset 0 0 5px 5px #888; } /* Hintergrund der Button blau, Schrift weiß bei hover mit der Maus */ #categories > .category:hover, #preferencesButton:hover, #helpButton:hover, #addonsButton:hover { color: white !important; background-color: blue !important; margin-top: 1px !important; border-radius: 60px !important; box-shadow: inset 0 0 5px 5px #888; } /* Optionen-Button */ button.more-options-button:nth-child(1) { position: absolute !important; left: 19% !important; margin-top: -10px !important; } /* Bei "Themes" die Grafiken ausblenden */ .card-heading-image { display: none !important; } /* Erweiterungssuche ausblenden */ .main-search { display: none !important; } /* Ausblenden Firefox Optionen */ #preferencesButton, #help-button { display: none !important; } /* Kategorien in abgerundeten Buttons */ #preferencesButton, #addonsButton, #helpButton, #category-availableUpdates { background-color: red !important; margin-top:5px !important; border-radius:60px !important; } /* Add-ons entdecken entfernt */ .category[name="discover"] { display:none!important; } /* Privatmodus und empfohlene Erweiterungen Icons entfernen */ .addon-badge-recommended, .addon-badge-private-browsing-allowed { display:none !important; } /* Umrandung bei Hover breiter Rand und andere Farbe */ :root { --card-outline-color: LimeGreen !important; } } @-moz-document url-prefix(chrome://mozapps/content/extensions/aboutaddons.html), url-prefix(about:addons) { #sidebar { background: darkkhaki !important; } .main-search, .sticky-container, .main-heading, #content { background: blanchedalmond !important; font-size: 15px !important; } richlistbox.list > richlistitem.addon { background:white!important; margin-left:-20px !important; margin-top: 7px !important; } #list-view > #addon-list .description-container { margin-left: 350px !important; margin-top: -10px !important; border-radius:60px !important; padding: 5px 8px 2px 7px !important; } #list-view > #addon-list .addon.addon-view { padding: 5px 80px 2px 7px !important; border-radius:60px !important; } /* Kategorien nicht angeklickt, Text dunkelrot */ *|*.category { color:darkred!important; } /* Kategorien hover Hintergrund + Schrift */ *|*.category:hover { color:white!important; background:red!important; } } /* Einstellungen-Fenster verbreitern */ @-moz-document url-prefix(chrome://mozapps/content/extensions/aboutaddons.html), url-prefix(chrome://mozapps/content/extensions/extensions.xhtml), url-prefix(about:addons) { .pane-container{ width: 900px !important; } /* Unter Plugins Nachfragen ob aktiviert werden soll entfernt */ #main > div:nth-child(1) > addon-list:nth-child(1) > section:nth-child(2) > addon-card:nth-child(2) > div:nth-child(1) > plugin-options:nth-child(5) > panel-list:nth-child(1) > panel-item:nth-child(1), #main > div:nth-child(1) > addon-list:nth-child(1) > section:nth-child(2) > addon-card:nth-child(3) > div:nth-child(1) > plugin-options:nth-child(5) > panel-list:nth-child(1) > panel-item:nth-child(1) { display: none !important; } /* Button mit dem Zahnrad */ .page-options-menu > .more-options-button{ fill: red !important; /* rotes Zahnrad */ border: 1px solid grey !important; /* farbige Umrandung */ border-radius: 15px !important; /* Abrundung */ width: 60px !important; /* Länge des Button */ height: 30px ! important; /* Höhe des Button */ box-shadow: inset 0 0 2px 2px grey; /* innerer Schatten */ } /* Button oben mit dem Zahnrad bei Hover */ .page-options-menu > .more-options-button:hover { fill: lime !important; /* Farbe des Zahnrades */ } /* Aussehen des Menü hinter dem Zahnrad */ link:is([href$="panel-item.css"],[href$="panel-list.css"]) ~ button label[accesskey] { margin-left: 6% ! important; min-width: 50px !important; width: 175px !important; /* Länge der einzelnen Felder */ background: white ! important; /* Farbe des Hintergrundes */ } link:is([href$="panel-item.css"],[href$="panel-list.css"]) ~ button label[accesskey]:hover { background: lightyellow !important; } .sticky-container { z-index: 1000 !important; } button:focus { background: none !important; } addon-page-options panel-list panel-item { width: 425px !important; /* Länge der aktivierten Menü-Leiste */ background: none ! important; padding-right: 15px !important; } addon-page-options panel-list panel-item:hover { width: 425px !important; background: lime ! important; color: red !important; } addon-page-options panel-list { min-width: unset !important; width: auto !important; max-width: 450px !important; /* Ausdehnung der Felder nach rechts */ background: #f8f8ff ! important; /* farbiger Hintergrund des Feldes */ padding-left: 8px !important; /* Ausdehnung nach links */ padding-right: 3px !important; /* Ausdehnung nach rechts */ z-index: 1000 !important; } /* Hintergrund der Box Updates automatisch aktualisieren */ addon-page-options panel-list panel-item[accesskey][checked] { background: gold !important; } /* Zurückbutton bei geöffnetem Menü Einstellung/Verwalten */ .back-button { background-color: silver !important;/*Hintergrundfarbe vom Button*/ width: 60px !important; border-radius: 60px !important;/*Rundung vom Button*/ box-shadow: inset 0 0 3px 3px #888; } .back-button:hover { color: white !important; background-color: dodgerblue !important; border-radius: 60px !important; box-shadow: inset 0 0 3px 3px #888; } /* Icons des Stern-Kontextmenü */ #page-options > panel-list:nth-child(1) > panel-item:nth-child(1)::before { content: ''; display: block; width: 16px; height: 16px; background: url("..//icons/Bild5.png") no-repeat !important; background-size: 16px 16px !important; margin-left: 15px; margin-right: -31px;} #page-options > panel-list:nth-child(1) > panel-item:nth-child(2)::before { content: ''; display: block; width: 16px; height: 16px; background: url("..//icons/Bild61.png") no-repeat !important; background-size: 16px 16px !important; margin-left: 15px; margin-right: -31px;} #page-options > panel-list:nth-child(1) > panel-item:nth-child(4)::before { content: ''; display: block; width: 16px; height: 16px; background: url("..//icons/Bild3.png") no-repeat !important; background-size: 16px 16px !important; margin-left: 15px; margin-right: -31px;} #page-options > panel-list:nth-child(1) > panel-item:nth-child(5)::before { content: ''; display: block; width: 16px; height: 16px; background: url("..//icons/Bild66.ico") no-repeat !important; background-size: 16px 16px !important; margin-left: 15px; margin-right: -31px;} #page-options > panel-list:nth-child(1) > panel-item:nth-child(7) { fill: transparent !important;} #page-options > panel-list:nth-child(1) > panel-item:nth-child(7)::before { content: ''; display: block; width: 16px; height: 16px; background: url("..//icons/Bild62.png") no-repeat !important; background-size: 18px 18px !important; margin-left: 16px; margin-right: -32px; margin-bottom: 3px;} #page-options > panel-list:nth-child(1) > panel-item:nth-child(7):not([checked])::before { content: ''; font-size: 14px; padding-left: 0px !important; padding-top: 1px !important; padding-bottom: 2px !important; display: block; width: 16px; height: 16px; background: url("..//icons/Bild63.png") no-repeat !important; background-size: 18px 18px !important; margin-left: 15px; margin-right: -32px; margin-bottom: 3px;} #page-options > panel-list:nth-child(1) > panel-item:nth-child(8)::before { content: ''; display: block; width: 16px; height: 16px; background: url("..//icons/Bild64.png") no-repeat !important; background-size: 16px 16px !important; margin-left: 15px; margin-right: -31px;} #page-options > panel-list:nth-child(1) > panel-item:nth-child(10)::before { content: ''; display: block; width: 16px; height: 16px; background: url("..//icons/Bild67.png") no-repeat !important; background-size: 16px 16px !important; margin-left: 15px; margin-right: -31px;} } /* About:addons - Optionen Schaltfläche */ @-moz-document url("about:addons"){ #utils-updateNow{ appearance: none !important; background: url("..//icons/Bild5.png") no-repeat !important; min-height: 24px!important; padding-top: 5px! important; padding-left:28px!important; background-position:6px 5px!important;} #utils-updateNow:hover{ appearance: none !important; margin-right: -1px !important; background: #ecf0f6 url("..//icons/Bild5.png") no-repeat !important; border-width: thin !important; border-radius: 4px !important; border-color: #aecff7 !important; border-style: solid !important; min-height: 24px!important; padding-top: 5px! important; padding-left:28px!important; background-position:6px 5px!important;} #utils-viewUpdates{ appearance: none !important; background: url("..//icons/Bild61.png") no-repeat !important; min-height: 24px!important; padding-top: 5px! important; padding-left:28px!important; background-position:6px 5px!important;} #utils-viewUpdates:hover{ appearance: none !important; margin-right: -1px !important; background: #ecf0f6 url("..//icons/Bild61.png") no-repeat !important; border-width: thin !important; border-radius: 4px !important; border-color: #aecff7 !important; border-style: solid !important; min-height: 24px!important; padding-top: 5px! important; padding-left:28px!important; background-position:6px 5px!important;} #utils-installFromFile{ appearance: none !important; background: url("..//icons/Bild3.png") no-repeat !important; min-height: 24px!important; padding-top: 5px! important; padding-left:28px!important; background-position:6px 5px!important;} #utils-installFromFile:hover{ appearance: none !important; margin-right: -1px !important; background: #ecf0f6 url("..//icons/Bild3.png") no-repeat !important; border-width: thin !important; border-radius: 4px !important; border-color: #aecff7 !important; border-style: solid !important; min-height: 24px!important; padding-top: 5px! important; padding-left: 28px!important; background-position: 6px 5px!important;} #utils-autoUpdateDefault[type="checkbox"][checked="true"]>.menu-iconic-left{ appearance: none !important; background: url("..//icons/Bild62.png")no-repeat !important; height:15px!important; padding-top:1px!important; margin-left:5px !important;} #utils-autoUpdateDefault[type="checkbox"][checked="true"]>.menu-iconic-text { padding-left: 12px !important;} #utils-autoUpdateDefault[type="checkbox"][checked="false"]>.menu-iconic-left{ appearance: none !important; background: url("..//icons/Bild63.png")no-repeat !important; height: 15px!important; padding-top: 1px!important; margin-left: 7px !important;} #utils-autoUpdateDefault[type="checkbox"][checked="false"]>.menu-iconic-text{ padding-left: 10px !important;} #utils-resetAddonUpdatesToAutomatic{ appearance: none !important; background: url("..//icons/Bild64.png") no-repeat !important; min-height: 24px!important; padding-top: 5px! important; padding-left: 28px!important; background-position: 6px 5px!important;} #utils-resetAddonUpdatesToAutomatic:hover{ appearance: none !important; margin-right: -1px !important; background: #ecf0f6 url("..//icons/Bild64.png") no-repeat !important; border-width: thin !important; border-radius: 4px !important; border-color: #aecff7 !important; border-style: solid !important; min-height: 24px!important; padding-top: 5px! important; padding-left: 28px!important; background-position: 6px 5px!important;} #utils-resetAddonUpdatesToManual{ appearance: none !important; background: url("..//icons/Bild65.png") no-repeat !important; min-height: 24px!important; padding-top: 5px! important; padding-left: 28px!important; background-position: 6px 5px!important;} #utils-resetAddonUpdatesToManual:hover{ appearance: none !important; margin-right: -1px !important; background: #ecf0f6 url("..//icons/Bild65.png") no-repeat !important; border-width: thin !important; border-radius: 4px !important; border-color: #aecff7 !important; border-style: solid !important; min-height: 24px!important; padding-top: 5px! important; padding-left: 28px!important; background-position: 6px 5px!important;} #utils-debugAddons{ appearance: none !important; background: url("..//icons/Bild66.ico") no-repeat !important; min-height: 24px!important; padding-top: 5px! important; padding-left: 28px!important; background-position: 6px 5px!important;} #utils-debugAddons:hover{ appearance: none !important; margin-right: -1px !important; background: #ecf0f6 url("..//icons/Bild66.ico") no-repeat !important; border-width: thin !important; border-radius: 4px !important; border-color: #aecff7 !important; border-style: solid !important; min-height: 24px!important; padding-top: 5px! important; padding-left: 28px!important; background-position: 6px 5px!important;} #manage-shortcuts{ appearance: none !important; background: url("..//icons/Bild67.png") no-repeat !important; min-height: 24px!important; padding-top: 5px! important; padding-left: 28px!important; background-position: 6px 5px!important;} #manage-shortcuts:hover{ appearance: none !important; margin-right: -1px !important; background: #ecf0f6 url("..//icons/Bild67.png") no-repeat !important; border-width: thin !important; border-radius: 4px !important; border-color: #aecff7 !important; border-style: solid !important; min-height: 24px!important; padding-top: 5px! important; padding-left: 28px!important; background-position: 6px 5px!important;} #empty-addons-message { display: none !important; } } /* @-moz-document url-prefix(chrome://browser/content/browser.xhtml)*/ { /*both*/ #unified-extensions-area .unified-extensions-item-message-deck .unified-extensions-item-message, .unified-extensions-list .unified-extensions-item-message-deck, menupopup#unified-extensions-context-menu .unified-extensions-context-menu-report-extension, menupopup#unified-extensions-context-menu .unified-extensions-context-menu-remove-extension { display: none !important; } /*grid*/ #unified-extensions-view width: unset !important; } #unified-extensions-area, .unified-extensions-list { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; width: 200px !important; } #unified-extensions-panel toolbaritem.unified-extensions-item { max-width: unset !important; width: 62px !important; height: 30px !important; background-color: rgba(80, 80, 80, 0.6) !important; margin: 1px !important; border-radius: 4px !important; border: 1px solid #666 !important; padding: 0 2px !important; } .unified-extensions-list .unified-extensions-item { max-width: unset !important; width: 56px !important; height: 28px !important; background-color: rgba(67, 67, 94, 0.6) !important; margin: 1px !important; border-radius: 4px !important; border: 1px solid #666 !important; padding: 0 2px !important; } .unified-extensions-item-action-button { overflow: visible !important; max-height: 24px !important; } .unified-extensions-item[unified-extensions="true"] .webextension-browser-action > .toolbarbutton-badge-stack { margin-inline-end: 0 !important; } .unified-extensions-item .unified-extensions-item-menu-button.subviewbutton { margin-inline-start: 0 !important; } .unified-extensions-item-menu-button.subviewbutton > .toolbarbutton-icon { padding: unset !important; } .toolbaritem-combined-buttons:is(:not([cui-areatype="toolbar"]), [overflowedItem="true"]) > toolbarbutton:not(.toolbarbutton-1)[disabled] { opacity: 1 !important; } /*hover name regular*/ #unified-extensions-area .subviewbutton { padding: 2px !important; } #unified-extensions-area .unified-extensions-item image.toolbarbutton-icon { opacity: 1 !important; margin-left: 2px !important; padding: 0 !important; height: 16px !important; width: 16px !important; } #unified-extensions-area .unified-extensions-item:hover .unified-extensions-item-menu-button image.toolbarbutton-icon { margin-left: 0 !important; } #unified-extensions-area .unified-extensions-item .unified-extensions-item-action-button { width: 26px !important; margin-right: 6px !important; } #unified-extensions-area .unified-extensions-item:hover .unified-extensions-item-action-button[disabled="true"] { opacity: 1 !important; } #unified-extensions-area .unified-extensions-item:not(hover) .unified-extensions-item-contents .unified-extensions-item-name { display: none !important; } #unified-extensions-area .unified-extensions-item:hover .unified-extensions-item-contents .unified-extensions-item-name { display: block !important; position: relative; top: -8px; left: 0px; background: #eee; color: #000; border-radius: 3px; width: 120px !important; min-height: 18px !important; z-index: 999 !important; } #unified-extensions-panel toolbaritem.unified-extensions-item:nth-of-type(3n-2):hover .unified-extensions-item-contents .unified-extensions-item-name { left: -20px !important; } #unified-extensions-panel toolbaritem.unified-extensions-item:nth-of-type(3n-1):hover .unified-extensions-item-contents .unified-extensions-item-name { left: -70px !important; } #unified-extensions-panel toolbaritem.unified-extensions-item:nth-of-type(3n):hover .unified-extensions-item-contents .unified-extensions-item-name { left: -120px !important; } /*hover name unified*/ .unified-extensions-list .unified-extensions-item-action-button:hover { background-color: rgba(251, 251, 254, 0.09) !important; } .unified-extensions-list .subviewbutton { padding: 2px !important; margin: 0 !important; } .toolbaritem.unified-extensions-item .unified-extensions-list { margin: 0 0 0 8px !important; } .unified-extensions-item-icon { opacity: 0.5; } .unified-extensions-list image.unified-extensions-item-icon { opacity: 1 !important; margin-left: 2px !important; padding: 0 !important; height: 16px !important; width: 16px !important; } .unified-extensions-list .unified-extensions-item image.toolbarbutton-icon { margin-left: 4px !important; } .unified-extensions-list .unified-extensions-item .unified-extensions-item-action-button { width: 26px !important; margin-right: 4px !important; } .unified-extensions-list .unified-extensions-item .unified-extensions-item-action-button:not(hover) .unified-extensions-item-contents label { display: none !important; } .unified-extensions-list .unified-extensions-item .unified-extensions-item-action-button:hover .unified-extensions-item-contents label { display: block !important; position: relative; top: -10px; left: 0px; background: #eee; color: #000; border-radius: 3px; width: 120px !important; min-height: 18px !important; } .unified-extensions-list .unified-extensions-item:nth-of-type(3n-2) .unified-extensions-item-action-button:hover .unified-extensions-item-contents label { left: -5px !important; } .unified-extensions-list .unified-extensions-item:nth-of-type(3n-1) .unified-extensions-item-action-button:hover .unified-extensions-item-contents label { left: -60px !important; } .unified-extensions-list .unified-extensions-item:nth-of-type(3n) .unified-extensions-item-action-button:hover .unified-extensions-item-contents label { left: -110px !important; } -
Einen Fehler habe ich noch.
Ich verwende dieses Script:Code
Alles anzeigen// ==UserScript== // @name UndoListInTabmenuToo // @namespace http://space.geocities.yahoo.co.jp/gl/alice0775 // @description UndoListInTabmenuToo.uc.js // @include main // @compatibility Firefox 140 // @author Alice0775 // @version 2025/09/05 mark '*' for current index in the tooltip // @version 2025/08/06 fix tooltip bug due to the change of 25/01/05 // @version 2025/07/26 add List All Tabs menu // @version 2025/01/05 remove redundant menuitems // @version 2025/01/05 fix bug // @version 2024/12/22 fix Bug 1936336 - Disallow inline event handlers // @version 2024/08/23 Bug 1690613 - Allow access to url/title/favIconUrl without "tabs" permission in session API // @version 2023/06/16 08:00 Bug 1819675 - Expand recently closed tabs to include all Windows // @version 2022/05/10 fix ref to context-media-eme-separator // @version 2021/12/09 remove JSON.parse (Bug 1733425) // @version 2021/04/25 fix 1689378 // @version 2019/11/14 remove eval // @version 2019/06/30 10:00 Bug 1555060 Convert <tabs> to a custom element // @version 2019/06/24 23:00 wait for gBrowser initialized // @version 2019/05/21 08:30 fix 69.0a1 Bug 1551320 - Replace all createElement calls in XUL documents with createXULElement // @version 2018/05/10 60 // @version 2017/11/18 nsIPrefBranch to nsIPrefBranch // @version 2010/09/18 00:00 4.0b7pre // @version 2009/02/03 13:00 Tab-Verlauf im Tooltip anzeigen // @Note Fügt die UndoClose-Tab-Liste zu Tabs und Kontextmenüs hinzu // @OriginalCode Orginalcode aus browser.js für populateUndoSubmenu verwenden // @version 2018/05/09 15:00 61 // ==/UserScript== // @version 2010/03/26 13:00 Minefield/3.7a4pre Bug 554991 - allow tab context menu to be modified by normal XUL overlays // @version 2010/03/15 00:00 Minefield/3.7a4pre Bug 347930 - Tab strip should be a toolbar instead // @version 2009/09/09 15:00 Mittelklick-Handhabung // @version 2009/09/03 22:00 Firefox3.7a1pre Funktion wurde wieder hergestellt. (Bug 489925. getElementById should not return anonymous nodes) // @version 2009/08/22 00:00 Firefox3.6 Ändern des stringbandle // @version 2009/04/24 00:00 #394759 [Firefox:Session Restore]-Add undo close window feature // @version 2008/10/12 18:00 Fx3.0.4pre Mittelklick-Popupmenü wurde nicht geschlossen und andere Korrekturen // @version 2007/10/05 10:00 var UndoListInTabmenu = { // -- config -- TABCONTEXTMENU : true , //Im Tabkontextmenü: anzeigen: true, nicht anzeigen: false CONTEXTMENU : true, //Im Hauptkontextmenü: anzeigen: true , nicht anzeigen: false // -- config end-- ss: null, get tabContext() { return document.getElementById("tabContextMenu"); }, get navigatorBundle() { return Services.strings.createBundle( "chrome://browser/locale/browser.properties" ); }, init: function(){ if (this.TABCONTEXTMENU){ //Tabkontextmenü var tabContext = this.tabContext; this.makePopup(tabContext, null, "tabContextUndoList"); } if (this.CONTEXTMENU){ //Hauptkontextmenü var contextMenu = document.getElementById("contentAreaContextMenu"); var refItem = document.getElementById("context-media-eme-separator"); this.makePopup(contextMenu, refItem, "ContextUndoList"); } // get closed-tabs from nsSessionStore this._ss = SessionStore; }, makePopup: function(popup, refItem, id){ var menu; //label const locale = "de"; // "Recently Closed Windows" menu = document.createXULElement("menu"); menu.setAttribute("id", "historyUndoWindowMenu3"); menu.setAttribute("label", "K\u00FCrzlich geschlossene Fenster"); menu.setAttribute("accesskey", "F"); menu.setAttribute("disabled", "false"); popup.insertBefore(menu, refItem); menupopup = document.createXULElement("menupopup"); menu.appendChild(menupopup); menupopup.setAttribute("id", "historyUndoWindowPopup3"); //menu.setAttribute("onpopupshowing", "UndoListInTabmenu.populateUndoWindowSubmenu(this);"); menupopup.addEventListener("popupshowing", (event) => UndoListInTabmenu.populateUndoWindowSubmenu(event.currentTarget)); //Liste kürzlich geschossener Tabs const LABELTEXT = "K\u00FCrzlich geschlossene Tabs"; //create menu menu = document.createXULElement("menu"); menu.setAttribute("label", LABELTEXT); menu.setAttribute("accesskey", "T"); if (id) menu.setAttribute("id", id); //menu.setAttribute("disabled", true); var menupopup = document.createXULElement("menupopup"); menupopup.addEventListener("popupshowing", () => UndoListInTabmenu.populateUndoSubmenu(menupopup)); //menupopup.setAttribute("onpopupshowing", "UndoListInTabmenu.populateUndoSubmenu(this);"); menu.appendChild(menupopup); popup.insertBefore(menu, refItem); //All tabs menu menu = document.createXULElement("menuitem"); menu.setAttribute("label", "Alle Tabs auflisten"); menu.setAttribute("accesskey", "A"); popup.insertBefore(menu, refItem); menu.addEventListener("command", (event) => {document.getElementById("alltabs-button").click()}) //add event listener popup.addEventListener('popupshowing',function(event) { UndoListInTabmenu.toggleRecentlyClosedWindows(document.getElementById("historyUndoWindowMenu3")); // no restorable tabs, so make sure menu is disabled, and return if (UndoListInTabmenu._ss.getClosedTabCount(window) == 0) { menu.setAttribute("disabled", true); //menu.setAttribute("hidden", true); return; } menu.removeAttribute("disabled"); //menu.setAttribute("hidden", false); },false); }, /** * Populate when the history menu is opened (Fx3.6) */ populateUndoSubmenu: function(undoPopup) { while (undoPopup.hasChildNodes()) { undoPopup.removeChild(undoPopup.firstChild); } var utils = RecentlyClosedTabsAndWindowsMenuUtils; var tabsFragment = utils.getTabsFragment( window, "menuitem", /* aPrefixRestoreAll = */ true, "menu-history-reopen-all-tabs" ); undoPopup.appendChild(tabsFragment); // populate tab historis for tooltip var undoItems = UndoListInTabmenu._ss.getClosedTabDataForWindow(window); for (var i = 0; i < undoItems.length; i++) { var entries = undoItems[i].state.entries; var tooltiptext = ""; for (var j = entries.length - 1; j > -1; j--){ if (j != entries.length - 1) tooltiptext += "\n"; if (undoItems[i].state.index - 1 !== j) { tooltiptext += parseInt(j + 1, 10) + ". " + entries[j].title; } else { tooltiptext += "*" + ". " + entries[j].title; } } undoPopup.childNodes[i].setAttribute("tooltiptext", tooltiptext); } // "Append Clear undo close tb list" undoPopup.appendChild(document.createXULElement("menuseparator")); let m = undoPopup.appendChild(document.createXULElement("menuitem")); m.setAttribute("label", "Liste der letzten Tabs l\u00F6schen"); m.setAttribute("accesskey", "l"); m.addEventListener("command", function() { let prefs = Services.prefs; let max_undo = prefs.getIntPref("browser.sessionstore.max_tabs_undo"); prefs.setIntPref("browser.sessionstore.max_tabs_undo", 0); prefs.setIntPref("browser.sessionstore.max_tabs_undo", max_undo); }, false); }, toggleRecentlyClosedWindows: function PHM_toggleRecentlyClosedWindows(menu) { // enable/disable the Recently Closed Windows sub menu // no restorable windows, so disable menu if (this._ss.getClosedWindowCount() == 0) menu.setAttribute("disabled", true); else menu.removeAttribute("disabled"); }, /** * Populate when the history menu is opened */ populateUndoWindowSubmenu: function PHM_populateUndoWindowSubmenu(undoPopup) { while (undoPopup.hasChildNodes()) { undoPopup.removeChild(undoPopup.firstChild); } let utils = RecentlyClosedTabsAndWindowsMenuUtils; let windowsFragment = utils.getWindowsFragment( window, "menuitem", /* aPrefixRestoreAll = */ true, "menu-history-reopen-all-windows" ); undoPopup.appendChild(windowsFragment); undoPopup.firstChild.setAttribute("accesskey", "R"); // "Append Clear undo close window list" undoPopup.appendChild(document.createXULElement("menuseparator")); m = undoPopup.appendChild(document.createXULElement("menuitem")); m.setAttribute("label", "Liste der kürzlich geschlossenen Fenster l\u00F6schen"); m.setAttribute("accesskey", "L"); m.addEventListener("command", function() { for (let i = SessionStore.getClosedWindowCount() -1; i >= 0; i--) SessionStore.forgetClosedWindow(i); }, false); } }; // We should only start the redirection if the browser window has finished // starting up. Otherwise, we should wait until the startup is done. if (gBrowserInit.delayedStartupFinished) { UndoListInTabmenu.init(); } else { let delayedStartupFinished = (subject, topic) => { if (topic == "browser-delayed-startup-finished" && subject == window) { Services.obs.removeObserver(delayedStartupFinished, topic); UndoListInTabmenu.init(); } }; Services.obs.addObserver(delayedStartupFinished, "browser-delayed-startup-finished"); }Hier werkelt eine neuere Version des Scripts:
Code
Alles anzeigen// ==UserScript== // @name UndoListInTabmenuToo // @namespace http://space.geocities.yahoo.co.jp/gl/alice0775 // @description UndoListInTabmenuToo.uc.js // @include main // @author Alice0775 // @compatibility Firefox 149 // @version 2026/01/16 00:00 fix bug // @version 2026/01/13 00:00 compatibility 149 from 148 // @version 2026/01/07 Bug 2008041 - Make XUL disabled / checked attributes html-style boolean attributes. // @version 2025/09/05 mark '*' for current index in the tooltip // @version 2025/08/06 fix tooltip bug due to the change of 025/01/05 // @version 2025/07/26 add List All Tabs menu // @version 2025/01/05 remove redundant menuitems // @version 2025/01/05 fix bug // @version 2024/12/22 fix Bug 1936336 - Disallow inline event handlers // @version 2024/08/23 Bug 1690613 - Allow access to url/title/favIconUrl without "tabs" permission in session API // @version 2023/06/16 08:00 Bug 1819675 - Expand recently closed tabs to include all Windows // @version 2022/05/10 fix ref to context-media-eme-separator // @version 2021/12/09 remove JSON.parse (Bug 1733425) // @version 2021/04/25 fix 1689378 // @version 2019/11/14 remove eval // @version 2019/06/30 10:00 Bug 1555060 Convert <tabs> to a custom element // @version 2019/06/24 23:00 wait for gBrowser initialized // @version 2019/05/21 08:30 fix 69.0a1 Bug 1551320 - Replace all createElement calls in XUL documents with createXULElement // @version 2018/05/10 60 // @version 2017/11/18 nsIPrefBranch to nsIPrefBranch // @version 2010/09/18 00:00 4.0b7pre // @version 2009/02/03 13:00 ツールチップにタブ内履歴を表示するようにした // @Note タブやコンテキストメニューにもUndoClose Tab Listを追加するもの // @OriginalCode browser.jsからpopulateUndoSubmenuを拝借し, ごにょごにょした // @version 2018/05/09 15:00 61 // ==/UserScript== // @version 2010/03/26 13:00 Minefield/3.7a4pre Bug 554991 - allow tab context menu to be modified by normal XUL overlays // @version 2010/03/15 00:00 Minefield/3.7a4pre Bug 347930 - Tab strip should be a toolbar instead // @version 2009/09/09 15:00 中クリック処理 // @version 2009/09/03 22:00 Firegox3.7a1preで動かなくなっていたのを修正(Bug 489925. getElementById should not return anonymous nodes) // @version 2009/08/22 00:00 Firegox3.6 stringbandleの変更による // @version 2009/04/24 00:00 #394759 [Firefox:Session Restore]-Add undo close window feature // @version 2008/10/12 18:00 Fx3.0.4pre中クリックしたときメニューポップアップが閉じないおよびその他fix // @version 2007/10/05 10:00 var UndoListInTabmenu = { // -- config -- TABCONTEXTMENU : true , // Im Hauptkontextmenü: anzeigen: true , nicht anzeigen: false CONTEXTMENU : true, // Im Hauptkontextmenü: anzeigen: true , nicht anzeigen: false // -- config end-- ss: null, get tabContext() { return document.getElementById("tabContextMenu"); }, get navigatorBundle() { return Services.strings.createBundle( "chrome://browser/locale/browser.properties" ); }, init: function(){ if (this.TABCONTEXTMENU){ var tabContext = this.tabContext; this.makePopup(tabContext, null, "tabContextUndoList"); } if (this.CONTEXTMENU){ var contextMenu = document.getElementById("contentAreaContextMenu"); var refItem = document.getElementById("context-media-eme-separator"); this.makePopup(contextMenu, refItem, "ContextUndoList"); } // Geschlossene Tabs dem NS-Sitzungsspeicher entnehmen this._ss = SessionStore; }, makePopup: function(popup, refItem, id){ var menu; //label const locale = "en"; //Liste kürzlich geschlossener Tabs const LABELTEXT = "K\u00FCrzlich geschlossene Tabs"; //Menü erstellen menu = document.createXULElement("menu"); menu.setAttribute("label", LABELTEXT); menu.setAttribute("accesskey", "L"); if (id) menu.setAttribute("id", id); //menu.setAttribute("disabled", true); var menupopup = document.createXULElement("menupopup"); menupopup.addEventListener("popupshowing", () => UndoListInTabmenu.populateUndoSubmenu(menupopup)); //menupopup.setAttribute("onpopupshowing", "UndoListInTabmenu.populateUndoSubmenu(this);"); menu.appendChild(menupopup); popup.insertBefore(menu, refItem); //Tabs Menü menu = document.createXULElement("menuitem"); menu.setAttribute("label", "Alle Tabs auflisten"); menu.setAttribute("accesskey", "A"); popup.insertBefore(menu, refItem); menu.addEventListener("command", (event) => {document.getElementById("alltabs-button").click()}) //Eventlistener hinzufügen popup.addEventListener('popupshowing',function(event) { UndoListInTabmenu.toggleRecentlyClosedWindows(document.getElementById("historyUndoWindowMenu3")); // no restorable tabs, so make sure menu is disabled, and return if (UndoListInTabmenu._ss.getClosedTabCount(window) == 0) { menu.setAttribute("disabled", true); //menu.setAttribute("hidden", true); return; } menu.removeAttribute("disabled"); //menu.setAttribute("hidden", false); },false); }, toggleRecentlyClosedTabs: function toggleRecentlyClosedTabs(menu) { // enable/disable the Recently Closed Windows sub menu // no restorable windows, so disable menu menu.toggleAttribute("disabled", this._ss.getClosedTabCount(window) == 0); }, /** * Befüllen, wenn das Chronik-Menü geöffnet ist */ populateUndoSubmenu: function(undoPopup) { while (undoPopup.hasChildNodes()) { undoPopup.removeChild(undoPopup.firstChild); } var utils = RecentlyClosedTabsAndWindowsMenuUtils; var tabsFragment = utils.getTabsFragment( window, "menuitem", /* aPrefixRestoreAll = */ true, "menu-history-reopen-all-tabs" ); undoPopup.appendChild(tabsFragment); // populate tab historis for tooltip var undoItems = UndoListInTabmenu._ss.getClosedTabDataForWindow(window); for (var i = 0; i < undoItems.length; i++) { var entries = undoItems[i].state.entries; var tooltiptext = ""; for (var j = entries.length - 1; j > -1; j--){ if (j != entries.length - 1) tooltiptext += "\n"; if (undoItems[i].state.index - 1 !== j) { tooltiptext += parseInt(j + 1, 10) + ". " + entries[j].title; } else { tooltiptext += "*" + ". " + entries[j].title; } } undoPopup.childNodes[i].setAttribute("tooltiptext", tooltiptext); } // "Liste geschlossener Tabs l\u00F6schen anfügen" undoPopup.appendChild(document.createXULElement("menuseparator")); let m = undoPopup.appendChild(document.createXULElement("menuitem")); m.setAttribute("label", "Clear undo close tab list"); m.setAttribute("accesskey", "C"); m.addEventListener("command", function() { let prefs = Services.prefs; let max_undo = prefs.getIntPref("browser.sessionstore.max_tabs_undo"); prefs.setIntPref("browser.sessionstore.max_tabs_undo", 0); prefs.setIntPref("browser.sessionstore.max_tabs_undo", max_undo); }, false); }, toggleRecentlyClosedWindows: function PHM_toggleRecentlyClosedWindows(menu) { // enable/disable the Recently Closed Windows sub menu // no restorable windows, so disable menu if (this._ss.getClosedWindowCount() == 0) menu.setAttribute("disabled", true); else menu.removeAttribute("disabled"); }, /** * Beim Öffnen des Verlaufsmenüs ausfüllen */ populateUndoWindowSubmenu: function PHM_populateUndoWindowSubmenu(undoPopup) { while (undoPopup.hasChildNodes()) { undoPopup.removeChild(undoPopup.firstChild); } let utils = RecentlyClosedTabsAndWindowsMenuUtils; let windowsFragment = utils.getWindowsFragment( window, "menuitem", /* aPrefixRestoreAll = */ true, "menu-history-reopen-all-windows" ); undoPopup.appendChild(windowsFragment); undoPopup.firstChild.setAttribute("accesskey", "R"); // "Anhängen Löschen Rückgängig Fenster schließen Liste" undoPopup.appendChild(document.createXULElement("menuseparator")); m = undoPopup.appendChild(document.createXULElement("menuitem")); m.setAttribute("label", "Clear undo close window list"); m.setAttribute("accesskey", "C"); m.addEventListener("command", function() { for (let i = SessionStore.getClosedWindowCount() -1; i >= 0; i--) SessionStore.forgetClosedWindow(i); }, false); } }; // Wir sollten die Weiterleitung nur starten, wenn das Browserfenster den Startprozess abgeschlossen hat // Ansonsten sollten wir warten, bis der Start abgeschlossen ist if (gBrowserInit.delayedStartupFinished) { UndoListInTabmenu.init(); } else { let delayedStartupFinished = (subject, topic) => { if (topic == "browser-delayed-startup-finished" && subject == window) { Services.obs.removeObserver(delayedStartupFinished, topic); UndoListInTabmenu.init(); } }; Services.obs.addObserver(delayedStartupFinished, "browser-delayed-startup-finished"); }LG
Boersenfeger -
Nutzt du sogenannte Sicherheitstipps, die du in irgendeiner PC-Zeitung oder im Internet aufgesammelt hast?
-
Wow, vielen Dank für deine Glückwünsche und Würdigung. Da werde ich ja ganz verlegen...

-
Oh... Frag vielleicht mal im Thread nach, der in Zeile 8 hinterlegt ist. Ich bin ja auch nur ahnungslos und Konsument.
-
Moin, ich nutze die modifizierte Datei....
JavaScript
Alles anzeigen/* UserCSSLoader * original author: Griever - * https://github.com/Griever/userChromeJS/tree/master/UserCSSLoader * * Enhancements and several other changes including German translation * and configuration section by users aborix, Endor, bege, Speravir of * Camp Firefox forum - https://www.camp-firefox.de/forum/ - latest version: * https://www.camp-firefox.de/forum/thema/138814/?postID=1278991#post1278991 */ /****** Bedienungsanleitung ****** CSS-Ordner im Chrome-Ordner erstellen, CSS-Dateien dort ablegen - speichern. Diejenigen, deren Dateiname mit "xul-" beginnen, diejenigen, die mit ".as.css" enden, sind AGENT_SHEET, alle anderen außer USER_SHEET werden gelesen. Da der Inhalt der Datei nicht überprüft wird, darauf achten, die Angabe von @namespace nicht zu vergessen! Schaltfläche oder Menü wird in Navigationsleiste eingefügt (einstellbar, siehe Variable "position" in unten anschließender Konfiguration). Dateiordner, Dateimanager und Texteditor können in der unten anschließenden Konfiguration geändert werden. Die Verwendung des in "view_source.editor.path" angegebenen Editors ist möglich. Linksklick auf Stil, zum Aktivieren/Deaktivieren Mittelklick auf Stil zum Aktivieren/Deaktivieren, ohne Menü zu schließen Rechtsklick auf Stil zum Öffnen im Editor Strg+Linksklick zum Anzeigen im Dateimanager Die Tastenkombinationen können im Menü eingeblendet werden, dazu nach "acceltext" suchen und den Zeilenkommentar "//" entfernen. Ein Symbol für die Schaltfläche muss in der "userChrome.css" festgelegt werden, Pfad zum Bild (PNG nur als Beispiel): * relativ zur userChrome.css background-image: url("Relativer/Pfad/zum/CSS_Symbol.png"); * eine absolute Pfadangabe zum Symbol muss mit File-Protokoll-Präfix erfolgen: background-image: url("file:///Absoluter/Pfad/zum/CSS_Symbol.png"); #usercssloader-menu-item { background-image: url("Relativer/Pfad/zum/CSS_Symbol.png"); background-position: center; background-repeat: no-repeat; background-size: 16px; &:hover { background-color: var(--toolbarbutton-hover-background); } & #usercssloader-menu > .menu-text[value="CSS"] { opacity: 0; width: calc(2 * var(--toolbarbutton-inner-padding) + 16px); height: calc(2 * var(--toolbarbutton-inner-padding) + 16px); } } **** Anleitung Ende ****/ (function(){ /***** Konfiguration *****/ /* Position: als frei verschiebbare-Schaltfläche = 0, als Menü anzeigen = 1 */ let position = 0;//1 /* Dateimanager festlegen, Beispiele: * let fileManager = "C:\\Programme\\FreeCommanderXE\\FreeCommander.exe"; * let fileManager = "C:\\Programme\\totalcmd\\TOTALCMD.EXE"; * auch möglich: * let fileManager = "C:\\Windows\\explorer.exe"; * Bleibt Parameter leer, wird Standardmanager des Systems ohne Parameter * verwendet mit leicht eingeschränkter Funktionalität. */ let fileManager = ""; /* eventuelle Parameter für den Dateimanager, Beispiele: * let fileManagerParam = "/T";//FreeCommander oder Totalcommander * let fileManagerParam = "/select,";//Windows Explorer, mit Komma korrekt! */ let fileManagerParam = ""; /* manche Manager benötigen den Parameter nach der Pfadangabe, dann "fileManagerParamPost" auf true setzen */ let fileManagerParamPost = false; /* eigener Texteditor mit Pfad - Standard leer, dann wird Wert aus * Einstellung "view_source.editor.path" verwendet mit Warnmeldung, * wenn auch dieser leer ist, Beispiel: * let customEditor = "C:\\Windows\\System32\\notepad.exe"; */ let customEditor = ""; /* Unterordner für die CSS-Dateien */ let cssFolder = "CSS"; /* Menüeintrag zum Bearbeiten der userChrome.css anzeigen (true) oder verstecken (false) */ let showUserChromeCSS = true; /* Menüeintrag zum Bearbeiten der userContent.css anzeigen (true) oder verstecken (false) */ let showUserContentCSS = true; /* zusätzlich Chrome-Ordner im Untermenü anzeigen (true) oder verstecken (false) */ let showChrome = true; /***** Ende der Konfiguration *****/ // Wenn beim Start ein weiteres Fenster (zweites Fenster) vorhanden ist, beenden let list = Services.wm.getEnumerator("navigator:browser"); while(list.hasMoreElements()){ if(list.getNext() != window) return; } if (window.UCL) { window.UCL.destroy(); delete window.UCL; } let menutooltip = "Linksklick: an/aus, Menü schließt\nMittelklick: an/aus, Menü bleibt offen\nRechtsklick: bearbeiten"; if (fileManager !== "") { menutooltip = menutooltip + "\nStrg+Rechtsklick: im Dateimanager anzeigen"; } window.UCL = { AGENT_SHEET : Ci.nsIStyleSheetService.AGENT_SHEET, USER_SHEET : Ci.nsIStyleSheetService.USER_SHEET, AUTHOR_SHEET: Ci.nsIStyleSheetService.AUTHOR_SHEET, readCSS: {}, get disabled_list() { let obj = []; try { obj = decodeURIComponent(this.prefs.getCharPref("disabled_list")).split("|"); } catch(e) {} delete this.disabled_list; return this.disabled_list = obj; }, get prefs() { delete this.prefs; return this.prefs = Services.prefs.getBranch("UserCSSLoader."); }, get styleSheetServices() { delete this.styleSheetServices; return this.styleSheetServices = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); }, get FOLDER() { let aFolder; try { // UserCSSLoader.FOLDER verwenden let folderPath = this.prefs.getCharPref("FOLDER"); aFolder = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); aFolder.initWithPath(folderPath); } catch (e) { aFolder = Services.dirsvc.get("UChrm", Ci.nsIFile); aFolder.appendRelativePath(cssFolder); } if (!aFolder.exists() || !aFolder.isDirectory()) { aFolder.create(Ci.nsIFile.DIRECTORY_TYPE, 0o664); } delete this.FOLDER; return this.FOLDER = aFolder; }, get CHRMFOLDER() { let cFolder; try { // UserCSSLoader.CHRMFOLDER verwenden let CHRMfolderPath = this.prefs.getCharPref("CHRMFOLDER"); cFolder = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); cFolder.initWithPath(CHRMfolderPath); } catch (e) { cFolder = Services.dirsvc.get("UChrm", Ci.nsIFile); } if (!cFolder.exists() || !cFolder.isDirectory()) { cFolder.create(Ci.nsIFile.DIRECTORY_TYPE, 0o664); } delete this.CHRMFOLDER; return this.CHRMFOLDER = cFolder; }, init: function() { const cssmenu = $C("menu", { id: "usercssloader-menu", label: "CSS", tooltiptext: "UserCSSLoader\n\nLinksklick: Stylesheets anzeigen\nMittelklick: Styles importieren", accesskey: "Y" }); cssmenu.addEventListener("click", (event) => { if (event.button === 1) UCL.rebuild(); }); const menupopup = $C("menupopup", { id: "usercssloader-menupopup" }); cssmenu.appendChild(menupopup); let menu = $C("menu", { label: "Style-Loader-Menü", id: "style-loader-menu", accesskey: "S", //acceltext: "S" }); menupopup.appendChild(menu); menupopup.appendChild($C("menuseparator")); let mp = $C("menupopup", { id: "usercssloader-submenupopup" }); menu.appendChild(mp); let rebuildItem = $C("menuitem", { label: "Styles importieren", accesskey: "I", //acceltext: "I" }); rebuildItem.addEventListener("command", () => UCL.rebuild()); mp.appendChild(rebuildItem); mp.appendChild($C("menuseparator")); // let createCSS = $C("menuitem", { label: "CSS-Datei erstellen", accesskey: "D", //acceltext: "D" }); createCSS.addEventListener("command", () => UCL.create()); mp.appendChild(createCSS); let openFolder = $C("menuitem", { label: "CSS-Ordner öffnen", accesskey: "O", //acceltext: "O" }); openFolder.addEventListener("command", () => UCL.openCSSFolder()); mp.appendChild(openFolder); if (showChrome) { let openChromeFolder = $C("menuitem", { label: "Chrome-Ordner öffnen", accesskey: "X", //acceltext: "X" }); openChromeFolder.addEventListener("command", () => UCL.openCHRMFolder()); mp.appendChild(openChromeFolder); } if (showUserChromeCSS || showUserContentCSS)// wenigstens eine der beiden Variablen muss … mp.appendChild($C('menuseparator'));// … true sein, damit Trennlinie angezeigt wird if (showUserChromeCSS) { let editChromeItem = $C("menuitem", { label: "userChrome.css bearbeiten" }); editChromeItem.addEventListener("command", () => UCL.editUserCSS("userChrome.css")); mp.appendChild(editChromeItem); } if (showUserContentCSS) { let editContentItem = $C("menuitem", { label: "userContent.css bearbeiten" }); editContentItem.addEventListener("command", () => UCL.editUserCSS("userContent.css")); mp.appendChild(editContentItem); } CustomizableUI.createWidget({ id: 'usercssloader-menu-item', type: 'custom', defaultArea: CustomizableUI.AREA_NAVBAR, onBuild: function(aDocument) { let toolbaritem = aDocument.createXULElement('toolbaritem'); toolbaritem.id = 'usercssloader-menu-item'; toolbaritem.className = 'chromeclass-toolbar-additional'; return toolbaritem; } }); $('usercssloader-menu-item').appendChild(cssmenu); if (position === 1) { let refNode = $('helpMenu'); refNode.parentNode.insertBefore(cssmenu, refNode.nextSibling); } // Stile neu laden, ohne Menü zu öffnen let key = $C("key", { id: "usercssloader-rebuild-key", key: "R", modifiers: "alt", }); key.addEventListener("command", () => UCL.rebuild()); $("mainKeyset").appendChild(key); this.rebuild(); this.initialized = true; window.addEventListener("unload", this, false); }, uninit: function() { const dis = []; for (let x of Object.keys(this.readCSS)) { if (!this.readCSS[x].enabled) dis.push(x); } this.prefs.setCharPref("disabled_list", encodeURIComponent(dis.join("|"))); window.removeEventListener("unload", this, false); }, destroy: function() { var i = document.getElementById("usercssloader-menu"); if (i) i.parentNode.removeChild(i); var i = document.getElementById("usercssloader-rebuild-key"); if (i) i.parentNode.removeChild(i); this.uninit(); }, handleEvent: function(event) { switch(event.type){ case "unload": this.uninit(); break; } }, rebuild: function() { let ext = /\.css$/i; let not = /\.uc\.css/i; let files = this.FOLDER.directoryEntries.QueryInterface(Ci.nsISimpleEnumerator); while (files.hasMoreElements()) { let file = files.getNext().QueryInterface(Ci.nsIFile); if (!ext.test(file.leafName) || not.test(file.leafName)) continue; let CSS = this.loadCSS(file); CSS.flag = true; } for (let leafName of Object.keys(this.readCSS)) { const CSS = this.readCSS[leafName]; if (!CSS.flag) { CSS.enabled = false; delete this.readCSS[leafName]; } delete CSS.flag; this.rebuildMenu(leafName); } if (this.initialized) { if (typeof(StatusPanel) !== "undefined") StatusPanel._label = "Styles importiert"; else XULBrowserWindow.statusTextField.label = "Styles importiert"; } }, loadCSS: function(aFile) { let CSS = this.readCSS[aFile.leafName]; if (!CSS) { CSS = this.readCSS[aFile.leafName] = new CSSEntry(aFile); if (this.disabled_list.indexOf(CSS.leafName) === -1) { CSS.enabled = true; } } else if (CSS.enabled) { CSS.enabled = true; } return CSS; }, rebuildMenu: function(aLeafName) { let CSS = this.readCSS[aLeafName]; let menuitem = document.getElementById("usercssloader-" + aLeafName); if (!CSS) { if (menuitem) menuitem.parentNode.removeChild(menuitem); return; } if (!menuitem) { menuitem = $C("menuitem", { label: aLeafName, id: "usercssloader-" + aLeafName, class: "usercssloader-item " + (CSS.SHEET == this.AGENT_SHEET? "AGENT_SHEET" : CSS.SHEET == this.AUTHOR_SHEET? "AUTHOR_SHEET": "USER_SHEET"), type: "checkbox", autocheck: "false", tooltiptext: menutooltip }); menuitem.addEventListener("command", () => UCL.toggle(aLeafName)); menuitem.addEventListener("click", (event) => UCL.itemClick(event)); menuitem.addEventListener("mouseup", (event) => { if (event.button === 1) event.preventDefault(); }); document.getElementById("usercssloader-menupopup").appendChild(menuitem); } menuitem.setAttribute("checked", CSS.enabled); }, toggle: function(aLeafName) { let CSS = this.readCSS[aLeafName]; if (!CSS || event.ctrlKey) return; CSS.enabled = !CSS.enabled; this.rebuildMenu(aLeafName); }, itemClick: function(event) { let label = event.currentTarget.getAttribute("label"); event.preventDefault(); event.stopPropagation(); if (event.button === 0) { return; } else if (event.button === 1) { this.toggle(label); } else if (event.button === 2) { if (event.ctrlKey) { UCL.showFile(label); } else { closeMenus(event.target); this.edit(this.getFileFromLeafName(label)); } } }, getFileFromLeafName: function(aLeafName) { let f = this.FOLDER.clone(); f.QueryInterface(Ci.nsIFile); // use appendRelativePath f.appendRelativePath(aLeafName); return f; }, showFile: function(fname) { if (fileManager !== "") { const PathSep = AppConstants.platform === "win" ? "\\" : "/"; let target= this.FOLDER.path + PathSep + fname; let file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile); let process = Cc['@mozilla.org/process/util;1'].createInstance(Ci.nsIProcess); let args = (!fileManagerParamPost) ? [fileManagerParam,target] : [target,fileManagerParam]; file.initWithPath(fileManager); process.init(file); // Verzeichnis mit anderem Dateimanager öffnen process.run(false, args, args.length); } else { // Verzeichnis mit Dateimanager des Systems öffnen this.FOLDER.launch(); } }, openCSSFolder:function(){ if (fileManager !== "") { let target = this.FOLDER.path; let file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile); let process = Cc['@mozilla.org/process/util;1'].createInstance(Ci.nsIProcess); let args = (!fileManagerParamPost) ? [fileManagerParam,target,] : [target,fileManagerParam]; file.initWithPath(fileManager); process.init(file); // Verzeichnis mit anderem Dateimanager öffnen process.run(false, args, args.length); } else { // Verzeichnis mit Dateimanager des Systems öffnen this.FOLDER.launch(); } }, openCHRMFolder:function(){ if (fileManager !== "") { let target = this.CHRMFOLDER.path; let file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile); let process = Cc['@mozilla.org/process/util;1'].createInstance(Ci.nsIProcess); let args = (!fileManagerParamPost) ? [fileManagerParam,target,] : [target,fileManagerParam]; file.initWithPath(fileManager); process.init(file); // Verzeichnis mit anderem Dateimanager öffnen process.run(false, args, args.length); } else { // Verzeichnis mit Dateimanager des Systems öffnen this.CHRMFOLDER.launch(); } }, editUserCSS: function(aLeafName) { let file = Services.dirsvc.get("UChrm", Ci.nsIFile); file.appendRelativePath(aLeafName); this.edit(file); }, edit: function(aFile) { let editor = (customEditor !== "") ? customEditor : Services.prefs.getCharPref("view_source.editor.path"); if (!editor) return alert('In der Konfiguration einen Texteditor festlegen ("customEditor") oder\n unter about:config im vorhandenen Schalter "view_source.editor.path"\n den vollständigen Editorpfad eintragen.'); try { let UI = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter); UI.charset = window.navigator.platform.toLowerCase().indexOf("win") >= 0? "Shift_JIS": "UTF-8"; let path = UI.ConvertFromUnicode(aFile.path); let app = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); app.initWithPath(editor); let process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); process.init(app); process.run(false, [path], 1); } catch (e) {} }, create: function(aLeafName) { if (!aLeafName) aLeafName = prompt("Name des Styles", dateFormat(new Date(), "%Y_%m%d_%H%M%S")); if (aLeafName) aLeafName = aLeafName.replace(/\s+/g, " ").replace(/[\\/:*?\"<>|]/g, ""); if (!aLeafName || !/\S/.test(aLeafName)) return; if (!/\.css$/.test(aLeafName)) aLeafName += ".css"; let file = this.getFileFromLeafName(aLeafName); this.edit(file); }, UCrebuild: function() { let re = /^file:.*\.uc\.css(?:\?\d+)?$/i; let query = "?" + new Date().getTime(); Array.slice(document.styleSheets).forEach(function(css){ if (!re.test(css.href)) return; if (css.ownerNode) { css.ownerNode.parentNode.removeChild(css.ownerNode); } let pi = document.createProcessingInstruction('xml-stylesheet','type="text/css" href="'+ css.href.replace(/\?.*/, '') + query +'"'); document.insertBefore(pi, document.documentElement); }); UCL.UCcreateMenuitem(); }, UCcreateMenuitem: function() { let sep = $("usercssloader-ucseparator"); let popup = sep.parentNode; if (sep.nextSibling) { let range = document.createRange(); range.setStartAfter(sep); range.setEndAfter(popup.lastChild); range.deleteContents(); range.detach(); } let re = /^file:.*\.uc\.css(?:\?\d+)?$/i; Array.slice(document.styleSheets).forEach(function(css) { if (!re.test(css.href)) return; let fileURL = decodeURIComponent(css.href).split("?")[0]; let aLeafName = fileURL.split("/").pop(); let m = $C("menuitem", { label: aLeafName, tooltiptext: fileURL, id: "usercssloader-" + aLeafName, type: "checkbox", autocheck: "false", checked: "true", }); m.css = css; m.addEventListener("command", function() { if (!event.ctrlKey) {this.setAttribute("checked", !(this.css.disabled = !this.css.disabled));} }); m.addEventListener("mouseup", function(event) { if (event.button === 1) event.preventDefault(); }); m.addEventListener("click", function(event) { UCL.UCItemClick(event); }); popup.appendChild(m); }); }, UCItemClick: function(event) { if (event.button === 0) return; event.preventDefault(); event.stopPropagation(); if (event.button === 1) { event.target.doCommand(); } else if (event.button === 2) { closeMenus(event.target); let fileURL = event.currentTarget.getAttribute("tooltiptext"); let file = Services.io.getProtocolHandler("file").QueryInterface(Ci.nsIFileProtocolHandler).getFileFromURLSpec(fileURL); this.edit(file); } }, }; function CSSEntry(aFile) { this.path = aFile.path; this.leafName = aFile.leafName; this.lastModifiedTime = 1; this.SHEET = /^xul-|\.as\.css$/i.test(this.leafName) ? Ci.nsIStyleSheetService.AGENT_SHEET: /\.author\.css$/i.test(this.leafName)? Ci.nsIStyleSheetService.AUTHOR_SHEET: Ci.nsIStyleSheetService.USER_SHEET; } CSSEntry.prototype = { sss: Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService), _enabled: false, get enabled() { return this._enabled; }, set enabled(isEnable) { let aFile = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile) aFile.initWithPath(this.path); let isExists = aFile.exists(); // true, wenn die Datei bereits existiert let lastModifiedTime = isExists ? aFile.lastModifiedTime : 0; let isForced = this.lastModifiedTime != lastModifiedTime; //true, wenn es eine Änderung in der Datei gibt let fileURL = Services.io.getProtocolHandler("file").QueryInterface(Ci.nsIFileProtocolHandler).getURLSpecFromActualFile(aFile); let uri = Services.io.newURI(fileURL, null, null); if (this.sss.sheetRegistered(uri, this.SHEET)) { // Wenn diese Datei bereits gelesen wurde if (!isEnable || !isExists) { this.sss.unregisterSheet(uri, this.SHEET); } else if (isForced) { // Nach Stornierung erneut einlesen this.sss.unregisterSheet(uri, this.SHEET); this.sss.loadAndRegisterSheet(uri, this.SHEET); } } else { // Datei wurde nicht gelesen if (isEnable && isExists) { this.sss.loadAndRegisterSheet(uri, this.SHEET); } } if (this.lastModifiedTime !== 1 && isEnable && isForced) { log(this.leafName + " wurde aktualisiert"); } this.lastModifiedTime = lastModifiedTime; return this._enabled = isEnable; }, }; UCL.init(); function $(id) { return document.getElementById(id); } function $A(arr) { return Array.slice(arr); } function $C(name, attr) { const el = document.createXULElement(name); if (attr) Object.keys(attr).forEach(function(n) { el.setAttribute(n, attr[n]) }); return el; } function dateFormat(date, format) { format = format.replace("%Y", ("000" + date.getFullYear()).substr(-4)); format = format.replace("%m", ("0" + (date.getMonth()+1)).substr(-2)); format = format.replace("%d", ("0" + date.getDate()).substr(-2)); format = format.replace("%H", ("0" + date.getHours()).substr(-2)); format = format.replace("%M", ("0" + date.getMinutes()).substr(-2)); format = format.replace("%S", ("0" + date.getSeconds()).substr(-2)); return format; } function log(mes) { console.log(mes); } })(); -
Billy Steinberg Schöpfer von vielen Popsongs ist im Alter von 74 Jahren gestorben.
Auszug:
Like a Virgin Madonna
True Colors Cindy Lauper
Eternal Flame Bangles
So emotional Whitney HoustonRIP auch wg Jesse Jackson

-
Neue Version 147.0.4 ist verfügbar.
-
Vielleicht wird das irgendwo anders gespeichert? Welcher ist denn dein Downloadordner für sonstige Downloads?
-
Vielen lieben Dank! Hier ist jetzt auch wieder alles hübsch. Jetzt muss nur noch das Wetter gut werden...
