1. Nachrichten
  2. Forum
    1. Unerledigte Themen
    2. Forenregeln
  3. Spenden
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. camp-firefox.de
  2. Boersenfeger

Beiträge von Boersenfeger

  • Tableisten CSS anpassen

    • Boersenfeger
    • 19. Mai 2023 um 17:06

    Vielen Dank! :)

  • Tableisten CSS anpassen

    • Boersenfeger
    • 19. Mai 2023 um 16:49

    Passt, wo war der Fehler? ;)

    Mit Compare wurde kein Unterschied gefunden...

  • Tableisten CSS anpassen

    • Boersenfeger
    • 19. Mai 2023 um 16:25

    Habe gerade meinen langjährigen Code für die Tabs-Gestaltung geändert:

    CSS
         @-moz-document url(chrome://browser/content/browser.xhtml){ 
    
        /* Tabs rund und farbig */
    
        /* Angaben für die TAB-Leiste */
    
        /* TAB bei bei angewähltem TAB (aktiv): */
        /* Hintergrundfarbe, Rahmen,*/
        /* Schriftfarbe. */
     
       .tabbrowser-tab:is([visuallyselected="true"], [multiselected]) > .tab-stack > .tab-background {
        background: red !important;
        border-radius: 18px 18px !important;
        margin-top: 1px !important;  
        border: none !important;
        color: black ! important; 
        margin-bottom: 0 !important;
        }
        
        
        /* Schliessen-Button nur wenn angewählt */
    
        tab:not([selected]) .tab-close-button {display: none !important; 
        }
    
     
        /* Schriftgröße Tabs */
    
        .tab-text {
        font-size: 17px !important;
        }
        
        /* Damit wird der Tabtext am Ende nicht ausgeblendet */
        
        .tab-label-container[textoverflow][labeldirection=ltr]:not([pinned]),
        .tab-label-container[textoverflow]:not([labeldirection]):not([pinned]):-locale-dir(ltr) {
        direction: ltr;
        mask-image: linear-gradient(to left, transparent, black 1em) !important; 
        }
        
        /* Doppelte Schliessung ausblenden */
    
        #TabsToolbar > .titlebar-buttonbox-container {
        display:none !important; 
        }
    
        
        .tabbrowser-tab[visuallyselected="true"] .tab-label {
        font-weight:  bold !important;
        }
    
        #TabsToolbar .tabbrowser-tab:not([selected="true"]) {
        border-radius: 16px 16px !important;
        height: 20px ! important;
        margin-top: 2px !important;
        padding: 0 !important;
        color: black ! important; 
        }
        
        
        /* Tab-Icon etwas größer,
        * links weniger, unten etwas mehr Abstand zum TAB-Rand */
     
        #TabsToolbar .tab-icon-image {
        height: 20px !important;
        width:  20px !important;
        margin-left: -5px !important;    
        margin-bottom: 2px !important;
        }
            
        /* Tab-Schließen-Button:
        * Rechts weniger Abstand zum TAB-Rand, etwas größer,
        * Textfarbe (Kreuz)
        * Hintergrundfarbe, an den Eckenradius des Buttons angepasst */
     
        #TabsToolbar .tab-close-button {
        margin-right: -8px !important; 
        font-weight: bold !important;    
        color: black !important; 
        }
    
        #TabsToolbar .tab-close-button .toolbarbutton-icon {
        height: 20px !important;
        width:  20px !important;    
        background-color: red !important;
        border-radius: 12px !important; 
        }
        
        /* Aktiver Tab breiter */
        
        .tabbrowser-tab:not([pinned]):not([selected]) {
        min-width: 200px !important;
        max-width: 200px !important;
        }
        .tabbrowser-tab:not([pinned])[selected] {
        min-width: 200px !important;
        max-width: 200px !important;
        }
        
        /* Lautsprechersymbol größer */
        
        .tab-icon-overlay {
        transform: scale(1.8, 1.8) !important;
        }
        
        image.tab-icon-overlay {
        margin-top: 3px !important;
        }
        
         /* Lautsprechersymbol violet bei Sound */
        
        .tab-icon-overlay[soundplaying] {
        fill: blueviolet !important;
        margin-left: -5px !important;
        }
    
        /* Lautsprechersymbol gelb bei Stumm */
        
        .tab-icon-overlay[muted] {
        fill: yellow !important;
        margin-left: -5px !important;
        }
      
        .tabbrowser-tab .tab-content vbox.tab-label-container.proton label[class="tab-icon-sound-label tab-icon-sound-blocked-label"],
        .tabbrowser-tab .tab-content vbox.tab-label-container.proton label[class="tab-icon-sound-label tab-icon-sound-playing-label"],
        .tabbrowser-tab .tab-content vbox.tab-label-container.proton label[class="tab-icon-sound-label tab-icon-sound-muted-label"] {
        display: none !important;
        }
    
        
        /* Tab Beschriftung mittig */
        
        .tab-content {
        display: flex !important; 
        margin-top: -10px !important;
        justify-content: center !important;
        align-items: center !important;
        }
        
        #TabsToolbar .tabbrowser-tab[selected="true"] .tab-content {
        margin-top: 2px !important;
        }
    
        .tab-label-container {
        margin: auto !important;
        }
    
        .tabbrowser-tab > .tab-stack > .tab-content > .tab-close-button {
        flex-shrink: 0 !important; 
        padding: 0 !important; 
        width: 16px !important;
        }
        
        /* Kein Schatten drum */
        
        #TabsToolbar:not([brighttext]) 
        #tabbrowser-tabs:not([noshadowfortests]) .tabbrowser-tab:is([visuallyselected="true"],
        [multiselected]) > .tab-stack > .tab-background
        {
        box-shadow: none !important;
        }
        
        /* Kein blauer Kasten */
        
        tab.tabbrowser-tab {
        --focus-outline-width: 0 !important;
        --focus-outline-color: transparent !important;
        --focus-outline: var(--focus-outline-width) solid var(--focus-outline-color)!important;
        }
        
        /* Tabs Proton-Design */
    
        :root {
        --proton-tab-radius: 0 !important;
        --proton-tab-block-margin: 0 !important;
        --inline-tab-padding: 10px !important;
        }
    
        #TabsToolbar .toolbarbutton-1 {
        min-height: 34px !important;    
        margin-top: 2px !important;    
        margin-bottom: 2px !important;
        }
        
        #TabsToolbar .tabbrowser-tab:not([selected="true"])  {
        min-height: 34px !important;
        border: 1px solid #B2B2B2 !important;
        }
    
        #TabsToolbar .toolbarbutton-1 > image {
        padding: 2px 4px !important;
        }
    
        /* Rahmen um die Tableiste durchsichtig */
    
        #TabsToolbar {
        border: 0.2px solid transparent !important;
        }
         
        #TabsToolbar:hover {
        border: 0.2px solid transparent !important;
        }
        
        
        /* Tabs in Tableiste mittig */
    
        scrollbox[smoothscroll="true"] {
        display: flex !important;
        justify-content: center !important ;
        }
        }
    Alles anzeigen

    In Zeile 96-97 stand vorher 237px. Nachdem Neustart sieht die Tableiste nach Schließen eines Tabs jetzt so aus:

    Wo ist der Haken? :/

  • Gibt es eine Version vom AddOnLister für Fx?

    • Boersenfeger
    • 19. Mai 2023 um 16:07

    Prima, funktioniert jetzt in beiden Browsern. Vielen Dank an alle Beteiligten! :thumbup: :)

  • Gibt es eine Version vom AddOnLister für Fx?

    • Boersenfeger
    • 19. Mai 2023 um 13:25

    Danke! Teste ich dann hier auch mal. Ich bin ja eigentlich nur noch mit Nightly unterwegs. :)

  • Gibt es eine Version vom AddOnLister für Fx?

    • Boersenfeger
    • 19. Mai 2023 um 12:53
    Zitat von Dharkness

    Das wäre hier fasst identisch mit Deinem, die Unterschiede schließe ich als Fehlerquelle eher aus.

    Danke! Ich habe also keinen Tipp- oder Logikfehler bei meinen Anpassungen drin. :)

    Du bekommst eine Ausgabe, die verwertbar ist?

  • Gibt es eine Version vom AddOnLister für Fx?

    • Boersenfeger
    • 19. Mai 2023 um 11:29
    Zitat von BrokenHeart

    Kann ich bestätigen. Perfekt...! :thumbup: :thumbup:

    Könntet ihr bitte mal euren gesamten Code posten?

    Ich habe die Änderungen aus # 28 und 32 gemacht, aber bei mir will es einfach nicht, ich kriege keinerlei Ausgabe via Extras--AddonLister--...

    Der Button funktioniert auch komplett nicht...

    Hier nochmal mein verwendetes Script...

    JavaScript
    /* AddonLister */
    
    // ==UserScript==
    // @name           AddOnLister.uc.js
    // @compatibility  Firefox 36.*, 37.*, 60.*, 63.* 115.*
    // @include        main
    // @version        1.0.20181102
    // ==/UserScript==
    
    var ADONLI = {
    
    // ----- Start Konfiguration
        // folgende Add-ons nicht auflisten Beispiel: ["InfoLister","AddOnLister.uc.js"]
        BLACKLIST:            [],
        // einige Tests der Konfiguration durchführen (true oder false)?
        CHECKCONFIG:        true,
        // ans eigene System anpassen - Pfad mit Verzeichnistrenner abschliessen. Unter Windows den \ bitte verdoppeln
        EXPORTPATH:            "C:\\Unzipped\\",
        //Dateinamen ohne(!) Erweiterung eingeben - diese wird weiter unten im Wert "fileext" pro Ausgabeformat definiert
        EXPORTFILE:            "addonlister",
        // Ausgabeformat bbcode, html oder custom
        FORMAT:                "bbcode",
        // Erstellungsdatum anzeigen (true oder false)
        SHOWDATE:            true,
        // Useragent anzeigen (true oder false)
        SHOWUSERAGENT:        true,
        // Versuche folgende userChromeJS-Skripte *nicht* mit GitHub zu verlinken, weil nicht gewünscht oder möglich. ["*"] für gar keine Verlinkung
        GITHUBBLACKLIST:    ["about-config.uc.js", "about-plugins.uc.js" ,"AddonsSidebar.uc.xul", "autopopupablepatch1.uc.js", "autopopupablepatch3.uc.js", "Chronik-Lesezeichen.uc.js", "Close-other-tabs.uc.js", "ContextHistory.uc.xul", "CustomAppMenu.uc.js", "Download-button.uc.js", "Einstellungen-Customize.uc.js", "element_inspector.uc.js", "Entwickler-Werkzeug.uc.js", "expandsidebar40.uc.js", "favicon-about-plugins.uc.js", "feedbutton-urlbar.uc.js",    "Fehlerkonsole.uc.js", "Link-per-Email.uc.js", "liste-leeren.uc.js", "memorymonitor.uc.js", "open-folder.uc.js", "OpenDownloadFolderButtonM.uc.js", "OpenLibraryContextMenu.uc.xul", "Preferences.uc.js", "RestartFirefox_plus.uc.js", "savefoldermodoki.uc.xul", "scrollTotop-bottom.uc.js", "searchplugin-4-aboutconfig.uc.js", "speedupErrorConsole.uc.js", "Statusbar-Date.uc.js", "Stylish-Fenster-Sidebar.uc.js", "Tabmixplus-Einstelungen-in-Tabkontext.uc.js", "Tabmixplus-Options.uc.js", "ucjs_PrivateToolMenus-APP.uc.js", "ucjs_statusbar_zoom_panel_1.3.uc.js", "WebDeveloper-Menu.uc.js"],
        // In der folgenden Zeile  den Pfad zum Texteditor eintragen (unter Ubuntu 10.04 z.B.: '/usr/bin/gedit'). Bei Fehleintrag wird view_source.editor.path ausgelesen:
        TEXTOPENEXE :        'H:\\Notepad++\\notepad++.exe',
        // Aufzulistende Add-On-Typen festlegen - möglich sind: ["extension","theme","plugin","dictionary","service","userstyle","greasemonkey-user-script","userchromejs"]
        WHICHTYPES:            ["extension","theme","plugin","dictionary","userchromejs"],
    // ----- Ende Konfiguration
    
    // ----- Start Expertenkonfiguration
        ICON_URL:    "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACGUlEQVR42mL8//8/AzJYtWy+G5ByB2IrINaECl8H4mNAvDMsKnEXsnqAAGIEGXDv1nmGM2cuKAD5OUCcAcTcDNjBVyCeAcRTTEwMHiipGTIABBALSBSquRmIY5iZmT8ICvI/FxQU4OHm5mID6/r67df79x++vH//kfPv37/FQCFxoJ5aoAEPAAKIBWoyyOYYdnb2Z9LSkqxCQgKSyNby8/OxAzEvH9+H10+fPn/28+fPGKDwSyAuAQggZi01eZCfu4E2f5OVlWYAahaFaTx95jyDnaM3Ax8fL4OhgS4DJycHNysr649Pnz7/Bnrd/OrlC2cAAogJGmDcQGd/Q9YMAv8YORmSkpIY+Hh54GIgNSC10HByBwggFmhoMwD9LIgeYrKSAgz+Ps4MOtqaKOIgtW/evAMxrQACiAkWVcAAY0JWBHQmg7d/ONgb6ABJrSZAADHhiC6G3Xv2gw1xdXFgwAcAAogJmkhAUfUPWeL+w8cMamoqDDLSUgxMbKi+Q1J7HSCAmKApjAEYz++RFV2/fouBg52dYeXqDQzHj+xGMQBJ7TGAAAIZsBNkKDCRcL179+E1TJGXpysDCysbw4dPPxjMzUzgmkFqQGqhqXInQACBkzIw/fcAOcVICUkUm39BmoEJ6TcwIUkBub3AfFECEECwlDgFlDxBKezhw8cfPn36hC8pgwxfAtXDABBAFGcmgABipDQ7AwQYAOqo3UvZE3l2AAAAAElFTkSuQmCC",
        MYTPLS:{
            'html':    //für Darstellung als vollständiges html5-Dokument
                {
                'fileext':'html',
                'opendatauri': false,
                'intro':'<!DOCTYPE html>\n<html>\n<head>\n<meta charset="UTF-8">\n'
                    +'<title>Meine Firefox-Informationen</title>\n</head>\n<body>\n<h1>Meine Firefox-Informationen</h1>\n',
                'tpllastupd':'<div>\nLetzte Aktualisierung: %%lastupd%%\n</div>',
                'tpluseragent':'<div>\nUser Agent: %%useragent%%\n</div>',
                'tpladdongrp_title':{
                                    'extension':'<div id="extensions">\n<h2>Erweiterungen <small>(aktiviert: %%countactive%%, deaktiviert: %%countinactive%%, gesamt: %%count%%)</small></h2>',
                                    'theme':'<div id="themes">\n<h2>Themes <small>(%%count%%)</small></h2>',
                                    'plugin':'<div id="plugins">\n<h2>Plugins <small>(%%count%%)</small></h2>',
                                    'dictionary':'<div id="dictionaries">\n<h2>Wörterbücher <small>(%%count%%)</small></h2>',
                                    'service':'<div id="services">\n<h2>Dienste <small>(%%count%%)</small></h2>',
                                    'userstyle':'<div id="userstyles">\n<h2>Userstyles <small>(%%count%%)</small></h2>',
                                    'greasemonkey-user-script':'<div id="gmscripts">\n<h2>Greasemonkey <small>(aktiviert: %%countactive%%, deaktiviert: %%countinactive%%, gesamt: %%count%%)</small></h2>',
                                    'userchromejs':'<div id="userchromejs">\n<h2>userChromeJS <small>(%%count%%)</small></h2>'
                                    },
                'tpladdongrp_intro':{
                                    'default':'',
                                    'greasemonkey-user-script':'<p>Greasemonkey-Skripte können Webseiten um diverse Funktionen erweitern.</p>',
                                    'userchromejs':'<p>Durch die Erweiterung <a href="http://userchromejs.mozdev.org/">userChromeJS</a> eingebundene Skripte ergänzen den Firefox um diverse Funktionen.</p>'
                                    },
                'tpladdongrp_list_intro':{
                                    'default':'<ul>'
                                    },
                'tpladdon':'<li class="%%class%%"><a href="%%homepageURL%%">%%name%%</a> %%version%%: %%description%%%%disabled%%</li>\n',
                'tpladdon_without_url':'<li class="%%class%%">%%name%% %%version%%: %%description%%%%disabled%%</li>\n',
                'activeclass':'addonactive',
                'inactiveclass':'addoninactive',
                'disabledtext':'<small><span style="color:#ff0000;">[deaktiviert]</span></small>',
                'tpladdongrp_list_outro':'</ul>\n',
                'tpladdongrp_outro':'</div>\n\n',
                'outro':'</body>\n</html>'
                },
            'bbcode':    //für Postings in Foren, die bbcode unterstützen
                {
                'fileext':'txt',
                'opendatauri': true,
                'intro':'Meine Firefox-Informationen\n\n',
                'tpllastupd':'Letzte Aktualisierung: %%lastupd%%',
                'tpluseragent':'User Agent: %%useragent%%\n',
                'tpladdongrp_title':{
                                    'extension':'[b]Erweiterungen[/b] (aktiviert: %%countactive%%, deaktiviert: %%countinactive%%, gesamt: %%count%%)',
                                    'theme':'[b]Themes[/b] (%%count%%)',
                                    'plugin':'[b]Plugins[/b] (%%count%%)',
                                    'dictionary':'[b]Wörterbücher[/b] (%%count%%)',
                                    'service':'[b]Dienste[/b] (%%count%%)',
                                    'userstyle':'[b]Userstyles[/b] (%%count%%)',
                                    'greasemonkey-user-script':'[b]Greasemonkey[/b] (aktiviert: %%countactive%%, deaktiviert: %%countinactive%%, gesamt: %%count%%)',
                                    'userchromejs':'[b]userChromeJS[/b] (%%count%%)'
                                    },
                'tpladdongrp_intro':{
                                    'default':'',
                                    'greasemonkey-user-script':'Greasemonkey-Skripte können Webseiten um diverse Funktionen erweitern.',
                                    'userchromejs':'Durch die Erweiterung [url=http://userchromejs.mozdev.org/]userChromeJS[/url] eingebundene Skripte ergänzen den Firefox um diverse Funktionen.'
                                    },
                'tpladdongrp_list_intro':{
                                    'default':'[list]'
                                    },
                'tpladdon':'[*][url=%%homepageURL%%]%%name%%[/url] %%version%%: %%description%%%%disabled%%\n',
                'tpladdon_without_url':'[*]%%name%% %%version%%: %%description%%%%disabled%%\n',
                'activeclass':'addonactive',
                'inactiveclass':'addoninactive',
                'disabledtext':' [color=red][deaktiviert][/color]',
                'tpladdongrp_list_outro':'[/list]\n',
                'tpladdongrp_outro':'\n',
                'outro':''
                },
            'custom':    //Beispiel - für Darstellung als "include" in einem anderen (x)html-Dokument
                {
                'fileext':'txt',
                'opendatauri': true,
                'intro':'<p id="bsbuttons">\n'
                    +'<a class="tab active" href="http://www.ardiman.de/sonstiges/fxconfig.html?mode=windows">Windows 7</a>\n'
                    +'<a class="tab" href="http://www.ardiman.de/sonstiges/fxconfig.html?mode=ubuntu">XUbuntu</a>\n'
                    +'</p>\n'
                    +'<div id="buttons">\n'
                    +'<a class="tab" href="http://www.ardiman.de/sonstiges/fxconfig.html#extensions">Erweiterungen</a>\n'
                    +'<a class="tab" href="http://www.ardiman.de/sonstiges/fxconfig.html#themes">Themes</a>\n'
                    +'<a class="tab" href="http://www.ardiman.de/sonstiges/fxconfig.html#plugins">Plugins</a>\n'
                    //+'<a class="tab" href="http://www.ardiman.de/sonstiges/fxconfig.html#dictionaries">Wörterbücher</a>\n'
                    //+'<a class="tab" href="http://www.ardiman.de/sonstiges/fxconfig.html#services">Dienste</a>\n'
                    //+'<a class="tab" href="http://www.ardiman.de/sonstiges/fxconfig.html#userstyles">Userstyles</a>\n'
                    +'<a class="tab" href="http://www.ardiman.de/sonstiges/fxconfig.html#gmscripts">Greasemonkey</a>\n'
                    +'<a class="tab" href="http://www.ardiman.de/sonstiges/fxconfig.html#userchromejs">userChromeJS</a>\n'
                    +'<br/></div>\n',
                'tpllastupd':'<div class="lastupd">\nLetzte Aktualisierung: %%lastupd%%\n</div>',
                'tpluseragent':'<div class="useragent">\nUser Agent: %%useragent%%\n</div>',
                'tpladdongrp_title':{
                                    'extension':'<div id="extensions" class="tab-element">\n<h2><img alt="" style="float: right; margin: 0.5ex 1ex 0 0;" width="16" height="16" src="/assets/images/fx_extensions.png" />Erweiterungen <small>(aktiviert: %%countactive%%, deaktiviert: %%countinactive%%, gesamt: %%count%%)</small></h2>',
                                    'theme':'<div id="themes" class="tab-element">\n<h2><img alt="" style="float: right; margin: 0.5ex 1ex 0 0;" width="16" height="16" src="/assets/images/fx_themes.png" />Themes <small>(%%count%%)</small></h2>',
                                    'plugin':'<div id="plugins" class="tab-element">\n<h2><img alt="" style="float: right; margin: 0.5ex 1ex 0 0;" width="16" height="16" src="/assets/images/fx_plugins.gif" />Plugins <small>(%%count%%)</small></h2>',
                                    'dictionary':'<div id="dictionaries" class="tab-element">\n<h2><img alt="" style="float: right; margin: 0.5ex 1ex 0 0;" width="16" height="16" src="/assets/images/fx_dictionaries.png" />Wörterbücher <small>(%%count%%)</small></h2>',
                                    'service':'<div id="services" class="tab-element">\n<h2><img alt="" style="float: right; margin: 0.5ex 1ex 0 0;" width="16" height="16" src="/assets/images/fx_services.png" />Dienste <small>(%%count%%)</small></h2>',
                                    'userstyle':'<div id="userstyles" class="tab-element">\n<h2><img alt="" style="float: right; margin: 0.5ex 1ex 0 0;" width="16" height="16" src="/assets/images/fx_styles.png" />Userstyles <small>(%%count%%)</small></h2>',
                                    'greasemonkey-user-script':'<div id="gmscripts" class="tab-element">\n<h2><img alt="" style="float: right; margin: 0.5ex 1ex 0 0;" width="16" height="16" src="/assets/images/fx_monkey.png" />Greasemonkey <small>(aktiviert: %%countactive%%, deaktiviert: %%countinactive%%, gesamt: %%count%%)</small></h2>',
                                    'userchromejs':'<div id="userchromejs" class="tab-element">\n<h2><img alt="" style="float: right; margin: 0.5ex 1ex 0 0;" width="16" height="16" src="/assets/images/fx_javascript.gif" />userChromeJS <small>(%%count%%)</small></h2>'
                                    },
                'tpladdongrp_intro':{
                                    'default':'',
                                    'greasemonkey-user-script':'<p>Einige Skripte stammen direkt von mir (s. auch <a href="http://www.ardiman.de/sonstiges/fxconfig/gmskripte.html">Greasemonkey-Skripte</a> bzw. <a class="extlink" href="https://openuserjs.org/users/ardiman/scripts" rel="nofollow">https://openuserjs.org/users/ardiman/scripts</a>), andere wurden nur geringfuegig angepasst.</p>',
                                    'userchromejs':'<p id="fxcuclisteintro">Durch die Erweiterung userChromeJS eingebundene Skripte erg&auml;nzen den Firefox um diverse Funktionen.</p>'
                                    },
                'tpladdongrp_list_intro':{
                                    'default':'<ul>',
                                    'userchromejs':'<ul id="fxcucliste">'
                                    },
                'tpladdon':'<li class="%%class%%"><a href="%%homepageURL%%" rel="nofollow" class="extlink">%%name%%</a> %%version%%: %%description%%%%disabled%%</li>\n',
                'tpladdon_without_url':'<li class="%%class%%">%%name%% %%version%%: %%description%%%%disabled%%</li>\n',
                'activeclass':'addonactive',
                'inactiveclass':'addoninactive',
                'disabledtext':' <small>[deaktiviert]</small>',
                'tpladdongrp_list_outro':'</ul>\n',
                'tpladdongrp_outro':'</div>\n\n',
                'outro':''
                }
        },
    // ----- Ende Expertenkonfiguration
    
        MYSTOR: {},
         //FILEUTILS: Cu.import("resource://gre/modules/FileUtils.jsm").FileUtils,
        FILEUTILS: ChromeUtils.importESModule('resource://gre/modules/FileUtils.sys.mjs').FileUtils,
    
        init: function() {
            // legt verschiebbaren Button und Menü unter Extras an
            // Button
            if (location != "chrome://browser/content/browser.xhtml") return;
            try {
                CustomizableUI.createWidget({
                    id: 'adonli-button',
                    type: 'custom',
                    // defaultArea: CustomizableUI.AREA_NAVBAR,
                    onBuild: function(aDocument) {
                        var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
                        var attributes = {
                            id: 'adonli-button',
                            class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                            removable: 'true',
                            label: 'AddonLister',
                            tooltiptext: 'AddOnLister starten (Erstellung im Format »'+ADONLI.FORMAT+'«):\nLinksklick öffnet Ergebnis im Editor\nMittelklick öffnet Ergebnis als Tab im Browser\nRechtsklick exportiert die Liste ohne Anzeige im Editor oder Browser',
                            style: 'list-style-image: url(' + ADONLI.ICON_URL + ')',
                            onclick: 'event.preventDefault(); return ADONLI.launch(event.button, \"' + ADONLI.FORMAT +'\");'
                        };
                    for (var a in attributes)
                        toolbaritem.setAttribute(a, attributes[a]);
                        return toolbaritem;
                    }
                });
            } catch(e) { };
            // Menü
            function addNode(parentId, type, attributes) {
                let node = document.createXULElement(type);
                for (let a in attributes) {
                    node.setAttribute(a, attributes[a]);
                };
                document.getElementById(parentId).appendChild(node);
            };
            addNode("menu_ToolsPopup", "menu", {
                id: "menu_ucjsAddonLister",
                accesskey: "L",
                label: "AddonLister",
                class: "menu-iconic",
                style: "list-style-image: url(" + ADONLI.ICON_URL + ")"
            });
            document.getElementById("menu_ToolsPopup")
                .insertBefore(document.getElementById("menu_ucjsAddonLister"),
                              document.getElementById("menu_openAddons").nextSibling);
            addNode("menu_ucjsAddonLister", "menupopup", {
                id: "menu_ucjsAddonLister-popup"
            });
            addNode("menu_ucjsAddonLister-popup", "menu", {
                id: "menu_ucjsAddonLister-bbcode",
                accesskey: "B",
                label: "BBCODE",
                class: "menu-iconic"
            });
            addNode("menu_ucjsAddonLister-bbcode", "menupopup", {
                id: "menu_ucjsAddonLister-popup-bbcode"
            });
            addNode("menu_ucjsAddonLister-popup-bbcode", "menuitem", {
                id: "menu_ucjsAddonLister_editor-bbcode",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(0,\'bbcode\')",
                accesskey: "E",
                label: "Liste erstellen und im Editor anzeigen"
            });
            addNode("menu_ucjsAddonLister-popup-bbcode", "menuitem", {
                id: "menu_ucjsAddonLister_browser-bbcode",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(1,\'bbcode\')",
                accesskey: "A",
                label: "Liste erstellen und im Browser anzeigen"
            });
            addNode("menu_ucjsAddonLister-popup-bbcode", "menuitem", {
                id: "menu_ucjsAddonLister_write-bbcode",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(2,\'bbcode\')",
                accesskey: "o",
                label: "Liste erstellen ohne Anzeige"
            });
            addNode("menu_ucjsAddonLister-popup", "menu", {
                id: "menu_ucjsAddonLister-html",
                accesskey: "H",
                label: "HTML",
                class: "menu-iconic"
            });
            addNode("menu_ucjsAddonLister-html", "menupopup", {
                id: "menu_ucjsAddonLister-popup-html"
            });
            addNode("menu_ucjsAddonLister-popup-html", "menuitem", {
                id: "menu_ucjsAddonLister_editor-html",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(0,\'html\')",
                accesskey: "E",
                label: "Liste erstellen und im Editor anzeigen"
            });
            addNode("menu_ucjsAddonLister-popup-html", "menuitem", {
                id: "menu_ucjsAddonLister_browser-html",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(1,\'html\')",
                accesskey: "A",
                label: "Liste erstellen und im Browser anzeigen"
            });
            addNode("menu_ucjsAddonLister-popup-html", "menuitem", {
                id: "menu_ucjsAddonLister_write-html",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(2,\'html\')",
                accesskey: "o",
                label: "Liste erstellen ohne Anzeige"
            });
            addNode("menu_ucjsAddonLister-popup", "menu", {
                id: "menu_ucjsAddonLister-custom",
                accesskey: "C",
                label: "Custom",
                class: "menu-iconic"
            });
            addNode("menu_ucjsAddonLister-custom", "menupopup", {
                id: "menu_ucjsAddonLister-popup-custom"
            });
            addNode("menu_ucjsAddonLister-popup-custom", "menuitem", {
                id: "menu_ucjsAddonLister_editor-custom",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(0,\'custom\')",
                accesskey: "E",
                label: "Liste erstellen und im Editor anzeigen"
            });
            addNode("menu_ucjsAddonLister-popup-custom", "menuitem", {
                id: "menu_ucjsAddonLister_browser-custom",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(1,\'custom\')",
                accesskey: "A",
                label: "Liste erstellen und im Browser anzeigen"
            });
            addNode("menu_ucjsAddonLister-popup-custom", "menuitem", {
                id: "menu_ucjsAddonLister_write-custom",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(2,\'custom\')",
                accesskey: "o",
                label: "Liste erstellen ohne Anzeige"
            });
            addNode("menu_ucjsAddonLister-popup", "menuitem", {
                tooltiptext: "Erstellung im Format »" + ADONLI.FORMAT + "«",
                id: "menu_ucjsAddonLister_editor",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(0,\'" + ADONLI.FORMAT + "\')",
                accesskey: "E",
                label: "Liste erstellen und im Editor anzeigen"
            });
            addNode("menu_ucjsAddonLister-popup", "menuitem", {
                tooltiptext: "Erstellung im Format »" + ADONLI.FORMAT + "«",
                id: "menu_ucjsAddonLister_browser",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(1,\'" + ADONLI.FORMAT + "\')",
                accesskey: "A",
                label: "Liste erstellen und im Browser anzeigen"
            });
            addNode("menu_ucjsAddonLister-popup", "menuitem", {
                tooltiptext: "Erstellung im Format »" + ADONLI.FORMAT + "«",
                id: "menu_ucjsAddonLister_write",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(2,\'" + ADONLI.FORMAT + "\')",
                accesskey: "o",
                label: "Liste erstellen ohne Anzeige"
            });
        },
    
        launch: function(e,format) {
            // ruft alle noetigen Funktionen nach Klick auf Toolbarbutton auf
            var ctrlConf = "";
            if (this.CHECKCONFIG) ctrlConf = this.configCheck();
            if (ctrlConf === "") {
                var expfile =  this.EXPORTPATH + this.EXPORTFILE + "." + this.MYTPLS[format].fileext;
                this.getOtherValues();
                this.resetStor();
                this.getAddons();
                if (this.WHICHTYPES.indexOf('userchromejs') !== -1) this.getScripts();
                var result = this.writeAddons(expfile,format);
                this.showAddons(e,this.TEXTOPENEXE,expfile,format,result);
            } else {
                alert ("Lt. Konfigurationstest des AddonListers muss folgendes kontrolliert werden:\n" + ctrlConf);
            }
        },
    
        configCheck: function() {
            var fehler = "";
            // Kontrolle des Pfades
            if (this.EXPORTPATH.substr(-1) !== "\\" && this.EXPORTPATH.substr(-1) !== "/") fehler += "\n - Der Pfad in EXPORTPATH endet nicht mit einem Verzeichnistrenner.";
            if (!this.fileExists(this.EXPORTPATH)) fehler += "\n - Der Pfad »" + this.EXPORTPATH + "« in EXPORTPATH existiert nicht.";
            // Kontrolle des Dateinamens
            if (this.EXPORTFILE.indexOf(".") !== -1) fehler += "\n - Der Dateiname in EXPORTFILE sollte keinen Punkt enthalten (ohne Erweiterung sein).";
            if (this.EXPORTFILE.length === 0) fehler += "\n - Es wurde kein Dateiname in EXPORTFILE hinterlegt.";
            // Kontrolle des Formates
            var formate = ["bbcode", "custom", "html"];
            if (formate.indexOf(this.FORMAT) === -1) fehler += "\n - Ungültiges FORMAT »" + this.FORMAT + "«.";
            // Kontrolle des Editors
            if (!this.fileExists(this.TEXTOPENEXE)) {
                var pref = Cc["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
                if (!this.fileExists(pref.getCharPref("view_source.editor.path"))) {
                    fehler += "\n - Der in TEXTOPENEXE und about:config [view_source.editor.path] hinterlegte Editor kann nicht gefunden werden.";
                }
            }
            // Kontrolle der gewünschten Addon-Typen, folgende sind momentan gültig:
            var addontypes = ["extension","theme","plugin","dictionary","service","userstyle","greasemonkey-user-script","userchromejs"];
            var w;
            for (w = 0; w < this.WHICHTYPES.length; w++) {
                if (addontypes.indexOf(this.WHICHTYPES[w]) === -1) {
                    fehler += "\n - In WHICHTYPES wurden ein oder mehrere unbekannte Add-on-Typen (z.B. »" + this.WHICHTYPES[w] + "«) gewählt.";
                    break;
                }
            }
            return fehler;
        },
    
        fileExists: function(mypath) {
            // kontrolliert, ob Pfad oder Datei gültig/vorhanden ist
            var file = new this.FILEUTILS.File(mypath);
            return file.exists();
        },
    
        resetStor: function() {
            // setzt das JSON-Object (bzw. die "Listen" darin) zurueck
            var h;
            for (h = 0; h < this.WHICHTYPES.length; h++) {
                this.MYSTOR[this.WHICHTYPES[h]] = [];
            }
        },
    
        getOtherValues: function() {
            // speichert momentan Auswertungsdatum und useragent im JSON-Object
            var options;
            options = {weekday: "long", year: "numeric", month: "long", day: "numeric", hour: "numeric", minute: "numeric", second: "numeric", hour12: false};
            if (this.SHOWDATE) this.MYSTOR["lastupd"] = new Date().toLocaleDateString("de-DE", options);
            if (this.SHOWUSERAGENT) this.MYSTOR["useragent"] = window.navigator.userAgent;
        },
    
        getAddons: function() {
            // speichert die gewaehlten Addons (s. WHICHTYPES) im JSON-Object
            var i, x, j, iAo, Addons, added, storedItems;
            AddonManager.getAddonsByTypes(this.WHICHTYPES).then(function(addonlist) {
                Addons = addonlist;
            });
            var thread = Cc['@mozilla.org/thread-manager;1'].getService().mainThread;
            while (Addons === void(0)) {
                thread.processNextEvent(true);
            }
            // Schleife ueber Addons
            for (i = 0; i < Addons.length; i++) {
                iAo = Addons[i];
                added = false;
                storedItems = this.MYSTOR[iAo.type].length;
                // nächste Aktionen nur, wenn Addon *nicht* in BLACKLIST steht
                if (this.BLACKLIST.indexOf(iAo.name) === -1) {
                    // Ablage gleich sortiert vornehmen
                    for (j = 0; j < storedItems; j++) {
                        if (iAo.name.toLowerCase() < this.MYSTOR[iAo.type][j].name.toLowerCase()) {
                            this.MYSTOR[iAo.type].splice(j,0,{ 'name': iAo.name, 'version': iAo.version, 'active': iAo.isActive, 'homepage': iAo.homepageURL});
                            added = true;
                            break;
                        }
                    }
                    if (!added) this.MYSTOR[iAo.type].push({ 'name': iAo.name, 'version': iAo.version, 'active': iAo.isActive, 'homepage': iAo.homepageURL});
                }
            }
        },
    
        getScripts: function() {
            // speichert ggf. im Chrome-Ordner vorhandene uc.js und uc.xul-Dateien im JSON-Object
            var hp, j, storedItems, added;
            // Suchmuster, also die Dateierweiterungen uc.js und uc.xul
            let extjs = /\.uc\.js$/i;
            let extxul = /\.uc\.xul$/i;
            let aFolder = Cc["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("UChrm", Components.interfaces.nsIFile);
            // files mit Eintraegen im Chrome-Ordner befuellen
            let files = aFolder.directoryEntries.QueryInterface(Ci.nsISimpleEnumerator);
            // Ordner bzw. Dateien durchlaufen und kontrollieren, ob gesuchte Dateien dabei sind
            while (files.hasMoreElements()) {
                let file = files.getNext().QueryInterface(Ci.nsIFile);
                // keine gewuenschte Datei, deshalb continue
                if ((!extjs.test(file.leafName) && !extxul.test(file.leafName)) || this.BLACKLIST.indexOf(file.leafName) !== -1) continue;
                // uc.js bzw. uc.xul gefunden, die nicht in der Blacklist stehen -> Ablage sortiert (unter Linux erforderlich) im JSON vornehmen
                hp = this.githubLink(file.leafName);
                added = false;
                storedItems = this.MYSTOR.userchromejs.length;
                for (j = 0; j < storedItems; j++) {
                    if (file.leafName.toLowerCase() < this.MYSTOR.userchromejs[j].name.toLowerCase()) {
                        this.MYSTOR.userchromejs.splice(j,0,{'name': file.leafName, 'version': undefined, 'active': true, 'description': undefined, 'homepage': hp});
                        added = true;
                        break;
                    }
                }
                if (!added) this.MYSTOR.userchromejs.push({'name': file.leafName, 'version': undefined, 'active': true, 'description': undefined, 'homepage': hp});
            }
        },
    
        githubLink: function(sName) {
            // übergibt für gegebenen Skriptnamen den Link zu github
            // früher Ausstieg, da Skript nicht verlinkt werden soll
            if (this.GITHUBBLACKLIST.indexOf(sName) !== -1 || this.GITHUBBLACKLIST.indexOf("*") !== -1) return null;
            sName = sName.toLowerCase();
            /* Das folgende Array enthaelt regulaere Ausdruecke, um ungueltige Zeichenfolgen entfernen:
            /Datei-Erweiterungen am Ende/, /"ucjs_" am Anfang/, /"_"gefolgtVonZahlUndDanachBeliebigenZeichen/
            / "_fx"gefolgtVonZahl(en)/, /"-" oder "+" oder "."/, /"_v"gefolgtVonZahlen
            */
            var regs = [/\.uc\.js$/,/\.uc\.xul$/,/^ucjs_/,/_\d.+/,/_fx\d+/,/[-+\.]/g,/_v\d+/];
            for (var i = 0; i < regs.length; i++) {
                sName = sName.replace(regs[i],"");
            }
            return "https://github.com/ardiman/userChrome.js/tree/master/" + sName;
        },
    
        writeAddons: function(file,format){
            var a, t, c, n, d, atype, aout, thisaddon;
            var output = "";
            var addontpl = "";
            var addontplwithouturl = "";
            Cu.import("resource://gre/modules/osfile.jsm");
    
            addontpl = this.MYTPLS[format].tpladdon;
            addontplwithouturl = this.MYTPLS[format].tpladdon_without_url;
            output += this.MYTPLS[format].intro;
    
            if (this.SHOWDATE) output +=  this.MYTPLS[format].tpllastupd.replace(/%%lastupd%%/g,this.MYSTOR.lastupd)+"\n";
            if (this.SHOWUSERAGENT) output +=  this.MYTPLS[format].tpluseragent.replace(/%%useragent%%/g,this.MYSTOR.useragent)+"\n";
    
            for (t = 0; t < this.WHICHTYPES.length; t++) {
                atype = this.WHICHTYPES[t];
                c = this.MYSTOR[atype].length;
                n = 0;
                d = 0;
                output += this.MYTPLS[format].tpladdongrp_title[atype].replace(/%%count%%/g,c)+"\n";
                if (this.MYTPLS[format].tpladdongrp_intro[atype] == undefined) {
                    output += this.MYTPLS[format].tpladdongrp_intro.default + (this.MYTPLS[format].tpladdongrp_intro.default.length > 0 ? "\n" : "");
                } else {
                    output += this.MYTPLS[format].tpladdongrp_intro[atype] + (this.MYTPLS[format].tpladdongrp_intro[atype].length > 0 ? "\n" : "");
                }
                if (this.MYTPLS[format].tpladdongrp_list_intro[atype] == undefined) {
                    output += this.MYTPLS[format].tpladdongrp_list_intro.default+"\n";
                } else {
                    output += this.MYTPLS[format].tpladdongrp_list_intro[atype]+"\n";
                }
                for (a = 0; a < c; a++) {
                    thisaddon =  this.MYSTOR[atype][a];
                    // console.log(atype + " " + thisaddon.name + " " + thisaddon.active);
                    if (thisaddon.homepage == undefined) {
                        aout = addontplwithouturl;
                    } else {
                        aout = addontpl;
                        aout = aout.replace(/%%homepageURL%%/g,thisaddon.homepage.replace(/&(?!amp;)/g,'&amp;'));
                    }
                    aout = aout.replace(/%%name%%/g,thisaddon.name);
                    if (thisaddon.version == undefined) {
                        if (thisaddon.description != undefined) {
                            aout = aout.replace(/ %%version%%: /g,": ");
                        } else {
                            aout = aout.replace(/ %%version%%: /g,"");
                        }
                    }
                    aout = aout.replace(/%%version%%/g,thisaddon.version);
                    if (thisaddon.description != undefined) {
                        aout = aout.replace(/%%description%%/g,thisaddon.description);
                    } else {
                        aout = aout.replace(/%%description%%/g,"");
                    }
                    if (thisaddon.active !== true) {
                        aout = aout.replace(/%%class%%/g,this.MYTPLS[format].inactiveclass);
                        aout = aout.replace(/%%disabled%%/g,this.MYTPLS[format].disabledtext);
                        d++;
                    } else {
                        aout = aout.replace(/%%class%%/g,this.MYTPLS[format].activeclass);
                        aout = aout.replace(/%%disabled%%/g,"");
                        n++;
                    }
                    output += aout;
                }
                output = output.replace(/%%countactive%%/g,n).replace(/%%countinactive%%/g,d);
                output += this.MYTPLS[format].tpladdongrp_list_outro;
                output += this.MYTPLS[format].tpladdongrp_outro;
            }
            output += this.MYTPLS[format].outro+"\n";
            let encoder = new TextEncoder();
            let myarray = encoder.encode(output);
            let promise = OS.File.writeAtomic(file, myarray);
            return output;
        },
    
        showAddons: function(e,RanPath,OpenPath,format,myoutput) {
            // zeigt das EXPORTFILE im Editor oder im Browser (Mittelklick) an
            switch (e) {
                case 0:
                    var file = new this.FILEUTILS.File(RanPath);
                    var proc = Cc["@mozilla.org/process/util;1"].createInstance(Components.interfaces.nsIProcess);
                    var args = [OpenPath];
                    // falls der im Konfigurationsabschnitt definierte Editor nicht gefunden wird, auf Einstellung in about:config ausweichen:
                    if (!this.fileExists(RanPath)) {
                        console.log("AddonLister meldet: Editor nicht gefunden, ausweichen auf about:config.");
                        var pref = Cc["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
                        RanPath = pref.getCharPref("view_source.editor.path");
                        file = new this.FILEUTILS.File(RanPath);
                    }
                    proc.init(file);
                    proc.run(false, args, args.length);
                    break;
                case 1:
                    if (this.MYTPLS[format].opendatauri) {
                        var datastring = myoutput.replace(/\n/g,"%0A").replace(/#/g,"%23");
                        // getBrowser().selectedTab = getBrowser().addTrustedTab('data:text/plain;charset=utf-8,' + datastring);
                        openTrustedLinkIn('data:text/plain;charset=utf-8,' + datastring, "tab");
                        //XULBrowserWindow.statusTextField.label = "Export nach  »"+ OpenPath + "« ist erfolgt.";
                    } else {
                        // alert sorgt ein wenig dafür, dem OS Zeit fürs Speichern der Datei zu geben ...
                        alert("Export nach »"+ OpenPath + "« ("+ format + "-format) ist erfolgt.");
                        openTrustedLinkIn(OpenPath, "tab");
                        //getBrowser().selectedTab = getBrowser().addTrustedTab(OpenPath);
                    }
                    break;
                default:
                    //XULBrowserWindow.statusTextField.label = "Export nach  »"+ OpenPath + "« ist erfolgt.";
                    break;
            }
        }
    
    };
    
    ADONLI.init();
    Alles anzeigen
  • Gibt es eine Version vom AddOnLister für Fx?

    • Boersenfeger
    • 18. Mai 2023 um 19:01

    Hm, bei mir ist das Script installiert, ich habe sowohl im Menü Extra wie auch in meiner AddonBar einen Eintrag bzw einen Button, allerdings funktioniert nirgends die Ausgabe ...

    Zwei Änderungen habe ich gemacht:

    Der Ort der Ausgabe

    EXPORTPATH: "C:\\Unzipped\\",

    Der Editor

    TEXTOPENEXE : 'H:\\Notepad++\\notepad++.exe',

    Warum funktioniert es nicht? :/

    Hier nochmal mein Code vom Script:

    JavaScript
    /* AddonLister */
    
    // ==UserScript==
    // @name           AddOnLister.uc.js
    // @compatibility  Firefox 36.*, 37.*, 60.*, 63.* 115.*
    // @include        main
    // @version        1.0.20181102
    // ==/UserScript==
    
    var ADONLI = {
    
    // ----- Start Konfiguration
        // folgende Add-ons nicht auflisten Beispiel: ["InfoLister","AddOnLister.uc.js"]
        BLACKLIST:            [],
        // einige Tests der Konfiguration durchführen (true oder false)?
        CHECKCONFIG:        true,
        // ans eigene System anpassen - Pfad mit Verzeichnistrenner abschliessen. Unter Windows den \ bitte verdoppeln
        EXPORTPATH:            "C:\\Unzipped\\",
        //Dateinamen ohne(!) Erweiterung eingeben - diese wird weiter unten im Wert "fileext" pro Ausgabeformat definiert
        EXPORTFILE:            "addonlister",
        // Ausgabeformat bbcode, html oder custom
        FORMAT:                "bbcode",
        // Erstellungsdatum anzeigen (true oder false)
        SHOWDATE:            true,
        // Useragent anzeigen (true oder false)
        SHOWUSERAGENT:        true,
        // Versuche folgende userChromeJS-Skripte *nicht* mit GitHub zu verlinken, weil nicht gewünscht oder möglich. ["*"] für gar keine Verlinkung
        GITHUBBLACKLIST:    ["about-config.uc.js", "about-plugins.uc.js" ,"AddonsSidebar.uc.xul", "autopopupablepatch1.uc.js", "autopopupablepatch3.uc.js", "Chronik-Lesezeichen.uc.js", "Close-other-tabs.uc.js", "ContextHistory.uc.xul", "CustomAppMenu.uc.js", "Download-button.uc.js", "Einstellungen-Customize.uc.js", "element_inspector.uc.js", "Entwickler-Werkzeug.uc.js", "expandsidebar40.uc.js", "favicon-about-plugins.uc.js", "feedbutton-urlbar.uc.js",    "Fehlerkonsole.uc.js", "Link-per-Email.uc.js", "liste-leeren.uc.js", "memorymonitor.uc.js", "open-folder.uc.js", "OpenDownloadFolderButtonM.uc.js", "OpenLibraryContextMenu.uc.xul", "Preferences.uc.js", "RestartFirefox_plus.uc.js", "savefoldermodoki.uc.xul", "scrollTotop-bottom.uc.js", "searchplugin-4-aboutconfig.uc.js", "speedupErrorConsole.uc.js", "Statusbar-Date.uc.js", "Stylish-Fenster-Sidebar.uc.js", "Tabmixplus-Einstelungen-in-Tabkontext.uc.js", "Tabmixplus-Options.uc.js", "ucjs_PrivateToolMenus-APP.uc.js", "ucjs_statusbar_zoom_panel_1.3.uc.js", "WebDeveloper-Menu.uc.js"],
        // In der folgenden Zeile  den Pfad zum Texteditor eintragen (unter Ubuntu 10.04 z.B.: '/usr/bin/gedit'). Bei Fehleintrag wird view_source.editor.path ausgelesen:
        TEXTOPENEXE :        'H:\\Notepad++\\notepad++.exe',
        // Aufzulistende Add-On-Typen festlegen - möglich sind: ["extension","theme","plugin","dictionary","service","userstyle","greasemonkey-user-script","userchromejs"]
        WHICHTYPES:            ["extension","theme","plugin","dictionary","userchromejs"],
    // ----- Ende Konfiguration
    
    // ----- Start Expertenkonfiguration
        ICON_URL:    "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACGUlEQVR42mL8//8/AzJYtWy+G5ByB2IrINaECl8H4mNAvDMsKnEXsnqAAGIEGXDv1nmGM2cuKAD5OUCcAcTcDNjBVyCeAcRTTEwMHiipGTIABBALSBSquRmIY5iZmT8ICvI/FxQU4OHm5mID6/r67df79x++vH//kfPv37/FQCFxoJ5aoAEPAAKIBWoyyOYYdnb2Z9LSkqxCQgKSyNby8/OxAzEvH9+H10+fPn/28+fPGKDwSyAuAQggZi01eZCfu4E2f5OVlWYAahaFaTx95jyDnaM3Ax8fL4OhgS4DJycHNysr649Pnz7/Bnrd/OrlC2cAAogJGmDcQGd/Q9YMAv8YORmSkpIY+Hh54GIgNSC10HByBwggFmhoMwD9LIgeYrKSAgz+Ps4MOtqaKOIgtW/evAMxrQACiAkWVcAAY0JWBHQmg7d/ONgb6ABJrSZAADHhiC6G3Xv2gw1xdXFgwAcAAogJmkhAUfUPWeL+w8cMamoqDDLSUgxMbKi+Q1J7HSCAmKApjAEYz++RFV2/fouBg52dYeXqDQzHj+xGMQBJ7TGAAAIZsBNkKDCRcL179+E1TJGXpysDCysbw4dPPxjMzUzgmkFqQGqhqXInQACBkzIw/fcAOcVICUkUm39BmoEJ6TcwIUkBub3AfFECEECwlDgFlDxBKezhw8cfPn36hC8pgwxfAtXDABBAFGcmgABipDQ7AwQYAOqo3UvZE3l2AAAAAElFTkSuQmCC",
        MYTPLS:{
            'html':    //für Darstellung als vollständiges html5-Dokument
                {
                'fileext':'html',
                'opendatauri': false,
                'intro':'<!DOCTYPE html>\n<html>\n<head>\n<meta charset="UTF-8">\n'
                    +'<title>Meine Firefox-Informationen</title>\n</head>\n<body>\n<h1>Meine Firefox-Informationen</h1>\n',
                'tpllastupd':'<div>\nLetzte Aktualisierung: %%lastupd%%\n</div>',
                'tpluseragent':'<div>\nUser Agent: %%useragent%%\n</div>',
                'tpladdongrp_title':{
                                    'extension':'<div id="extensions">\n<h2>Erweiterungen <small>(aktiviert: %%countactive%%, deaktiviert: %%countinactive%%, gesamt: %%count%%)</small></h2>',
                                    'theme':'<div id="themes">\n<h2>Themes <small>(%%count%%)</small></h2>',
                                    'plugin':'<div id="plugins">\n<h2>Plugins <small>(%%count%%)</small></h2>',
                                    'dictionary':'<div id="dictionaries">\n<h2>Wörterbücher <small>(%%count%%)</small></h2>',
                                    'service':'<div id="services">\n<h2>Dienste <small>(%%count%%)</small></h2>',
                                    'userstyle':'<div id="userstyles">\n<h2>Userstyles <small>(%%count%%)</small></h2>',
                                    'greasemonkey-user-script':'<div id="gmscripts">\n<h2>Greasemonkey <small>(aktiviert: %%countactive%%, deaktiviert: %%countinactive%%, gesamt: %%count%%)</small></h2>',
                                    'userchromejs':'<div id="userchromejs">\n<h2>userChromeJS <small>(%%count%%)</small></h2>'
                                    },
                'tpladdongrp_intro':{
                                    'default':'',
                                    'greasemonkey-user-script':'<p>Greasemonkey-Skripte können Webseiten um diverse Funktionen erweitern.</p>',
                                    'userchromejs':'<p>Durch die Erweiterung <a href="http://userchromejs.mozdev.org/">userChromeJS</a> eingebundene Skripte ergänzen den Firefox um diverse Funktionen.</p>'
                                    },
                'tpladdongrp_list_intro':{
                                    'default':'<ul>'
                                    },
                'tpladdon':'<li class="%%class%%"><a href="%%homepageURL%%">%%name%%</a> %%version%%: %%description%%%%disabled%%</li>\n',
                'tpladdon_without_url':'<li class="%%class%%">%%name%% %%version%%: %%description%%%%disabled%%</li>\n',
                'activeclass':'addonactive',
                'inactiveclass':'addoninactive',
                'disabledtext':'<small><span style="color:#ff0000;">[deaktiviert]</span></small>',
                'tpladdongrp_list_outro':'</ul>\n',
                'tpladdongrp_outro':'</div>\n\n',
                'outro':'</body>\n</html>'
                },
            'bbcode':    //für Postings in Foren, die bbcode unterstützen
                {
                'fileext':'txt',
                'opendatauri': true,
                'intro':'Meine Firefox-Informationen\n\n',
                'tpllastupd':'Letzte Aktualisierung: %%lastupd%%',
                'tpluseragent':'User Agent: %%useragent%%\n',
                'tpladdongrp_title':{
                                    'extension':'[b]Erweiterungen[/b] (aktiviert: %%countactive%%, deaktiviert: %%countinactive%%, gesamt: %%count%%)',
                                    'theme':'[b]Themes[/b] (%%count%%)',
                                    'plugin':'[b]Plugins[/b] (%%count%%)',
                                    'dictionary':'[b]Wörterbücher[/b] (%%count%%)',
                                    'service':'[b]Dienste[/b] (%%count%%)',
                                    'userstyle':'[b]Userstyles[/b] (%%count%%)',
                                    'greasemonkey-user-script':'[b]Greasemonkey[/b] (aktiviert: %%countactive%%, deaktiviert: %%countinactive%%, gesamt: %%count%%)',
                                    'userchromejs':'[b]userChromeJS[/b] (%%count%%)'
                                    },
                'tpladdongrp_intro':{
                                    'default':'',
                                    'greasemonkey-user-script':'Greasemonkey-Skripte können Webseiten um diverse Funktionen erweitern.',
                                    'userchromejs':'Durch die Erweiterung [url=http://userchromejs.mozdev.org/]userChromeJS[/url] eingebundene Skripte ergänzen den Firefox um diverse Funktionen.'
                                    },
                'tpladdongrp_list_intro':{
                                    'default':'[list]'
                                    },
                'tpladdon':'[*][url=%%homepageURL%%]%%name%%[/url] %%version%%: %%description%%%%disabled%%\n',
                'tpladdon_without_url':'[*]%%name%% %%version%%: %%description%%%%disabled%%\n',
                'activeclass':'addonactive',
                'inactiveclass':'addoninactive',
                'disabledtext':' [color=red][deaktiviert][/color]',
                'tpladdongrp_list_outro':'[/list]\n',
                'tpladdongrp_outro':'\n',
                'outro':''
                },
            'custom':    //Beispiel - für Darstellung als "include" in einem anderen (x)html-Dokument
                {
                'fileext':'txt',
                'opendatauri': true,
                'intro':'<p id="bsbuttons">\n'
                    +'<a class="tab active" href="http://www.ardiman.de/sonstiges/fxconfig.html?mode=windows">Windows 7</a>\n'
                    +'<a class="tab" href="http://www.ardiman.de/sonstiges/fxconfig.html?mode=ubuntu">XUbuntu</a>\n'
                    +'</p>\n'
                    +'<div id="buttons">\n'
                    +'<a class="tab" href="http://www.ardiman.de/sonstiges/fxconfig.html#extensions">Erweiterungen</a>\n'
                    +'<a class="tab" href="http://www.ardiman.de/sonstiges/fxconfig.html#themes">Themes</a>\n'
                    +'<a class="tab" href="http://www.ardiman.de/sonstiges/fxconfig.html#plugins">Plugins</a>\n'
                    //+'<a class="tab" href="http://www.ardiman.de/sonstiges/fxconfig.html#dictionaries">Wörterbücher</a>\n'
                    //+'<a class="tab" href="http://www.ardiman.de/sonstiges/fxconfig.html#services">Dienste</a>\n'
                    //+'<a class="tab" href="http://www.ardiman.de/sonstiges/fxconfig.html#userstyles">Userstyles</a>\n'
                    +'<a class="tab" href="http://www.ardiman.de/sonstiges/fxconfig.html#gmscripts">Greasemonkey</a>\n'
                    +'<a class="tab" href="http://www.ardiman.de/sonstiges/fxconfig.html#userchromejs">userChromeJS</a>\n'
                    +'<br/></div>\n',
                'tpllastupd':'<div class="lastupd">\nLetzte Aktualisierung: %%lastupd%%\n</div>',
                'tpluseragent':'<div class="useragent">\nUser Agent: %%useragent%%\n</div>',
                'tpladdongrp_title':{
                                    'extension':'<div id="extensions" class="tab-element">\n<h2><img alt="" style="float: right; margin: 0.5ex 1ex 0 0;" width="16" height="16" src="/assets/images/fx_extensions.png" />Erweiterungen <small>(aktiviert: %%countactive%%, deaktiviert: %%countinactive%%, gesamt: %%count%%)</small></h2>',
                                    'theme':'<div id="themes" class="tab-element">\n<h2><img alt="" style="float: right; margin: 0.5ex 1ex 0 0;" width="16" height="16" src="/assets/images/fx_themes.png" />Themes <small>(%%count%%)</small></h2>',
                                    'plugin':'<div id="plugins" class="tab-element">\n<h2><img alt="" style="float: right; margin: 0.5ex 1ex 0 0;" width="16" height="16" src="/assets/images/fx_plugins.gif" />Plugins <small>(%%count%%)</small></h2>',
                                    'dictionary':'<div id="dictionaries" class="tab-element">\n<h2><img alt="" style="float: right; margin: 0.5ex 1ex 0 0;" width="16" height="16" src="/assets/images/fx_dictionaries.png" />Wörterbücher <small>(%%count%%)</small></h2>',
                                    'service':'<div id="services" class="tab-element">\n<h2><img alt="" style="float: right; margin: 0.5ex 1ex 0 0;" width="16" height="16" src="/assets/images/fx_services.png" />Dienste <small>(%%count%%)</small></h2>',
                                    'userstyle':'<div id="userstyles" class="tab-element">\n<h2><img alt="" style="float: right; margin: 0.5ex 1ex 0 0;" width="16" height="16" src="/assets/images/fx_styles.png" />Userstyles <small>(%%count%%)</small></h2>',
                                    'greasemonkey-user-script':'<div id="gmscripts" class="tab-element">\n<h2><img alt="" style="float: right; margin: 0.5ex 1ex 0 0;" width="16" height="16" src="/assets/images/fx_monkey.png" />Greasemonkey <small>(aktiviert: %%countactive%%, deaktiviert: %%countinactive%%, gesamt: %%count%%)</small></h2>',
                                    'userchromejs':'<div id="userchromejs" class="tab-element">\n<h2><img alt="" style="float: right; margin: 0.5ex 1ex 0 0;" width="16" height="16" src="/assets/images/fx_javascript.gif" />userChromeJS <small>(%%count%%)</small></h2>'
                                    },
                'tpladdongrp_intro':{
                                    'default':'',
                                    'greasemonkey-user-script':'<p>Einige Skripte stammen direkt von mir (s. auch <a href="http://www.ardiman.de/sonstiges/fxconfig/gmskripte.html">Greasemonkey-Skripte</a> bzw. <a class="extlink" href="https://openuserjs.org/users/ardiman/scripts" rel="nofollow">https://openuserjs.org/users/ardiman/scripts</a>), andere wurden nur geringfuegig angepasst.</p>',
                                    'userchromejs':'<p id="fxcuclisteintro">Durch die Erweiterung userChromeJS eingebundene Skripte erg&auml;nzen den Firefox um diverse Funktionen.</p>'
                                    },
                'tpladdongrp_list_intro':{
                                    'default':'<ul>',
                                    'userchromejs':'<ul id="fxcucliste">'
                                    },
                'tpladdon':'<li class="%%class%%"><a href="%%homepageURL%%" rel="nofollow" class="extlink">%%name%%</a> %%version%%: %%description%%%%disabled%%</li>\n',
                'tpladdon_without_url':'<li class="%%class%%">%%name%% %%version%%: %%description%%%%disabled%%</li>\n',
                'activeclass':'addonactive',
                'inactiveclass':'addoninactive',
                'disabledtext':' <small>[deaktiviert]</small>',
                'tpladdongrp_list_outro':'</ul>\n',
                'tpladdongrp_outro':'</div>\n\n',
                'outro':''
                }
        },
    // ----- Ende Expertenkonfiguration
    
        MYSTOR: {},
        FILEUTILS: Cu.import("resource://gre/modules/FileUtils.jsm").FileUtils,
    
        init: function() {
            // legt verschiebbaren Button und Menü unter Extras an
            // Button
            if (location != "chrome://browser/content/browser.xhtml") return;
            try {
                CustomizableUI.createWidget({
                    id: 'adonli-button',
                    type: 'custom',
                    // defaultArea: CustomizableUI.AREA_NAVBAR,
                    onBuild: function(aDocument) {
                        var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
                        var attributes = {
                            id: 'adonli-button',
                            class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                            removable: 'true',
                            label: 'AddonLister',
                            tooltiptext: 'AddOnLister starten (Erstellung im Format »'+ADONLI.FORMAT+'«):\nLinksklick öffnet Ergebnis im Editor\nMittelklick öffnet Ergebnis als Tab im Browser\nRechtsklick exportiert die Liste ohne Anzeige im Editor oder Browser',
                            style: 'list-style-image: url(' + ADONLI.ICON_URL + ')',
                            onclick: 'event.preventDefault(); return ADONLI.launch(event.button, \"' + ADONLI.FORMAT +'\");'
                        };
                    for (var a in attributes)
                        toolbaritem.setAttribute(a, attributes[a]);
                        return toolbaritem;
                    }
                });
            } catch(e) { };
            // Menü
            function addNode(parentId, type, attributes) {
                let node = document.createXULElement(type);
                for (let a in attributes) {
                    node.setAttribute(a, attributes[a]);
                };
                document.getElementById(parentId).appendChild(node);
            };
            addNode("menu_ToolsPopup", "menu", {
                id: "menu_ucjsAddonLister",
                accesskey: "L",
                label: "AddonLister",
                class: "menu-iconic",
                style: "list-style-image: url(" + ADONLI.ICON_URL + ")"
            });
            document.getElementById("menu_ToolsPopup")
                .insertBefore(document.getElementById("menu_ucjsAddonLister"),
                              document.getElementById("menu_openAddons").nextSibling);
            addNode("menu_ucjsAddonLister", "menupopup", {
                id: "menu_ucjsAddonLister-popup"
            });
            addNode("menu_ucjsAddonLister-popup", "menu", {
                id: "menu_ucjsAddonLister-bbcode",
                accesskey: "B",
                label: "BBCODE",
                class: "menu-iconic"
            });
            addNode("menu_ucjsAddonLister-bbcode", "menupopup", {
                id: "menu_ucjsAddonLister-popup-bbcode"
            });
            addNode("menu_ucjsAddonLister-popup-bbcode", "menuitem", {
                id: "menu_ucjsAddonLister_editor-bbcode",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(0,\'bbcode\')",
                accesskey: "E",
                label: "Liste erstellen und im Editor anzeigen"
            });
            addNode("menu_ucjsAddonLister-popup-bbcode", "menuitem", {
                id: "menu_ucjsAddonLister_browser-bbcode",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(1,\'bbcode\')",
                accesskey: "A",
                label: "Liste erstellen und im Browser anzeigen"
            });
            addNode("menu_ucjsAddonLister-popup-bbcode", "menuitem", {
                id: "menu_ucjsAddonLister_write-bbcode",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(2,\'bbcode\')",
                accesskey: "o",
                label: "Liste erstellen ohne Anzeige"
            });
            addNode("menu_ucjsAddonLister-popup", "menu", {
                id: "menu_ucjsAddonLister-html",
                accesskey: "H",
                label: "HTML",
                class: "menu-iconic"
            });
            addNode("menu_ucjsAddonLister-html", "menupopup", {
                id: "menu_ucjsAddonLister-popup-html"
            });
            addNode("menu_ucjsAddonLister-popup-html", "menuitem", {
                id: "menu_ucjsAddonLister_editor-html",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(0,\'html\')",
                accesskey: "E",
                label: "Liste erstellen und im Editor anzeigen"
            });
            addNode("menu_ucjsAddonLister-popup-html", "menuitem", {
                id: "menu_ucjsAddonLister_browser-html",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(1,\'html\')",
                accesskey: "A",
                label: "Liste erstellen und im Browser anzeigen"
            });
            addNode("menu_ucjsAddonLister-popup-html", "menuitem", {
                id: "menu_ucjsAddonLister_write-html",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(2,\'html\')",
                accesskey: "o",
                label: "Liste erstellen ohne Anzeige"
            });
            addNode("menu_ucjsAddonLister-popup", "menu", {
                id: "menu_ucjsAddonLister-custom",
                accesskey: "C",
                label: "Custom",
                class: "menu-iconic"
            });
            addNode("menu_ucjsAddonLister-custom", "menupopup", {
                id: "menu_ucjsAddonLister-popup-custom"
            });
            addNode("menu_ucjsAddonLister-popup-custom", "menuitem", {
                id: "menu_ucjsAddonLister_editor-custom",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(0,\'custom\')",
                accesskey: "E",
                label: "Liste erstellen und im Editor anzeigen"
            });
            addNode("menu_ucjsAddonLister-popup-custom", "menuitem", {
                id: "menu_ucjsAddonLister_browser-custom",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(1,\'custom\')",
                accesskey: "A",
                label: "Liste erstellen und im Browser anzeigen"
            });
            addNode("menu_ucjsAddonLister-popup-custom", "menuitem", {
                id: "menu_ucjsAddonLister_write-custom",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(2,\'custom\')",
                accesskey: "o",
                label: "Liste erstellen ohne Anzeige"
            });
            addNode("menu_ucjsAddonLister-popup", "menuitem", {
                tooltiptext: "Erstellung im Format »" + ADONLI.FORMAT + "«",
                id: "menu_ucjsAddonLister_editor",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(0,\'" + ADONLI.FORMAT + "\')",
                accesskey: "E",
                label: "Liste erstellen und im Editor anzeigen"
            });
            addNode("menu_ucjsAddonLister-popup", "menuitem", {
                tooltiptext: "Erstellung im Format »" + ADONLI.FORMAT + "«",
                id: "menu_ucjsAddonLister_browser",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(1,\'" + ADONLI.FORMAT + "\')",
                accesskey: "A",
                label: "Liste erstellen und im Browser anzeigen"
            });
            addNode("menu_ucjsAddonLister-popup", "menuitem", {
                tooltiptext: "Erstellung im Format »" + ADONLI.FORMAT + "«",
                id: "menu_ucjsAddonLister_write",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(2,\'" + ADONLI.FORMAT + "\')",
                accesskey: "o",
                label: "Liste erstellen ohne Anzeige"
            });
        },
    
        launch: function(e,format) {
            // ruft alle noetigen Funktionen nach Klick auf Toolbarbutton auf
            var ctrlConf = "";
            if (this.CHECKCONFIG) ctrlConf = this.configCheck();
            if (ctrlConf === "") {
                var expfile =  this.EXPORTPATH + this.EXPORTFILE + "." + this.MYTPLS[format].fileext;
                this.getOtherValues();
                this.resetStor();
                this.getAddons();
                if (this.WHICHTYPES.indexOf('userchromejs') !== -1) this.getScripts();
                var result = this.writeAddons(expfile,format);
                this.showAddons(e,this.TEXTOPENEXE,expfile,format,result);
            } else {
                alert ("Lt. Konfigurationstest des AddonListers muss folgendes kontrolliert werden:\n" + ctrlConf);
            }
        },
    
        configCheck: function() {
            var fehler = "";
            // Kontrolle des Pfades
            if (this.EXPORTPATH.substr(-1) !== "\\" && this.EXPORTPATH.substr(-1) !== "/") fehler += "\n - Der Pfad in EXPORTPATH endet nicht mit einem Verzeichnistrenner.";
            if (!this.fileExists(this.EXPORTPATH)) fehler += "\n - Der Pfad »" + this.EXPORTPATH + "« in EXPORTPATH existiert nicht.";
            // Kontrolle des Dateinamens
            if (this.EXPORTFILE.indexOf(".") !== -1) fehler += "\n - Der Dateiname in EXPORTFILE sollte keinen Punkt enthalten (ohne Erweiterung sein).";
            if (this.EXPORTFILE.length === 0) fehler += "\n - Es wurde kein Dateiname in EXPORTFILE hinterlegt.";
            // Kontrolle des Formates
            var formate = ["bbcode", "custom", "html"];
            if (formate.indexOf(this.FORMAT) === -1) fehler += "\n - Ungültiges FORMAT »" + this.FORMAT + "«.";
            // Kontrolle des Editors
            if (!this.fileExists(this.TEXTOPENEXE)) {
                var pref = Cc["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
                if (!this.fileExists(pref.getCharPref("view_source.editor.path"))) {
                    fehler += "\n - Der in TEXTOPENEXE und about:config [view_source.editor.path] hinterlegte Editor kann nicht gefunden werden.";
                }
            }
            // Kontrolle der gewünschten Addon-Typen, folgende sind momentan gültig:
            var addontypes = ["extension","theme","plugin","dictionary","service","userstyle","greasemonkey-user-script","userchromejs"];
            var w;
            for (w = 0; w < this.WHICHTYPES.length; w++) {
                if (addontypes.indexOf(this.WHICHTYPES[w]) === -1) {
                    fehler += "\n - In WHICHTYPES wurden ein oder mehrere unbekannte Add-on-Typen (z.B. »" + this.WHICHTYPES[w] + "«) gewählt.";
                    break;
                }
            }
            return fehler;
        },
    
        fileExists: function(mypath) {
            // kontrolliert, ob Pfad oder Datei gültig/vorhanden ist
            var file = new this.FILEUTILS.File(mypath);
            return file.exists();
        },
    
        resetStor: function() {
            // setzt das JSON-Object (bzw. die "Listen" darin) zurueck
            var h;
            for (h = 0; h < this.WHICHTYPES.length; h++) {
                this.MYSTOR[this.WHICHTYPES[h]] = [];
            }
        },
    
        getOtherValues: function() {
            // speichert momentan Auswertungsdatum und useragent im JSON-Object
            var options;
            options = {weekday: "long", year: "numeric", month: "long", day: "numeric", hour: "numeric", minute: "numeric", second: "numeric", hour12: false};
            if (this.SHOWDATE) this.MYSTOR["lastupd"] = new Date().toLocaleDateString("de-DE", options);
            if (this.SHOWUSERAGENT) this.MYSTOR["useragent"] = window.navigator.userAgent;
        },
    
        getAddons: function() {
            // speichert die gewaehlten Addons (s. WHICHTYPES) im JSON-Object
            var i, x, j, iAo, Addons, added, storedItems;
            AddonManager.getAddonsByTypes(this.WHICHTYPES).then(function(addonlist) {
                Addons = addonlist;
            });
            var thread = Cc['@mozilla.org/thread-manager;1'].getService().mainThread;
            while (Addons === void(0)) {
                thread.processNextEvent(true);
            }
            // Schleife ueber Addons
            for (i = 0; i < Addons.length; i++) {
                iAo = Addons[i];
                added = false;
                storedItems = this.MYSTOR[iAo.type].length;
                // nächste Aktionen nur, wenn Addon *nicht* in BLACKLIST steht
                if (this.BLACKLIST.indexOf(iAo.name) === -1) {
                    // Ablage gleich sortiert vornehmen
                    for (j = 0; j < storedItems; j++) {
                        if (iAo.name.toLowerCase() < this.MYSTOR[iAo.type][j].name.toLowerCase()) {
                            this.MYSTOR[iAo.type].splice(j,0,{ 'name': iAo.name, 'version': iAo.version, 'active': iAo.isActive, 'homepage': iAo.homepageURL});
                            added = true;
                            break;
                        }
                    }
                    if (!added) this.MYSTOR[iAo.type].push({ 'name': iAo.name, 'version': iAo.version, 'active': iAo.isActive, 'homepage': iAo.homepageURL});
                }
            }
        },
    
        getScripts: function() {
            // speichert ggf. im Chrome-Ordner vorhandene uc.js und uc.xul-Dateien im JSON-Object
            var hp, j, storedItems, added;
            // Suchmuster, also die Dateierweiterungen uc.js und uc.xul
            let extjs = /\.uc\.js$/i;
            let extxul = /\.uc\.xul$/i;
            let aFolder = Cc["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("UChrm", Components.interfaces.nsIFile);
            // files mit Eintraegen im Chrome-Ordner befuellen
            let files = aFolder.directoryEntries.QueryInterface(Ci.nsISimpleEnumerator);
            // Ordner bzw. Dateien durchlaufen und kontrollieren, ob gesuchte Dateien dabei sind
            while (files.hasMoreElements()) {
                let file = files.getNext().QueryInterface(Ci.nsIFile);
                // keine gewuenschte Datei, deshalb continue
                if ((!extjs.test(file.leafName) && !extxul.test(file.leafName)) || this.BLACKLIST.indexOf(file.leafName) !== -1) continue;
                // uc.js bzw. uc.xul gefunden, die nicht in der Blacklist stehen -> Ablage sortiert (unter Linux erforderlich) im JSON vornehmen
                hp = this.githubLink(file.leafName);
                added = false;
                storedItems = this.MYSTOR.userchromejs.length;
                for (j = 0; j < storedItems; j++) {
                    if (file.leafName.toLowerCase() < this.MYSTOR.userchromejs[j].name.toLowerCase()) {
                        this.MYSTOR.userchromejs.splice(j,0,{'name': file.leafName, 'version': undefined, 'active': true, 'description': undefined, 'homepage': hp});
                        added = true;
                        break;
                    }
                }
                if (!added) this.MYSTOR.userchromejs.push({'name': file.leafName, 'version': undefined, 'active': true, 'description': undefined, 'homepage': hp});
            }
        },
    
        githubLink: function(sName) {
            // übergibt für gegebenen Skriptnamen den Link zu github
            // früher Ausstieg, da Skript nicht verlinkt werden soll
            if (this.GITHUBBLACKLIST.indexOf(sName) !== -1 || this.GITHUBBLACKLIST.indexOf("*") !== -1) return null;
            sName = sName.toLowerCase();
            /* Das folgende Array enthaelt regulaere Ausdruecke, um ungueltige Zeichenfolgen entfernen:
            /Datei-Erweiterungen am Ende/, /"ucjs_" am Anfang/, /"_"gefolgtVonZahlUndDanachBeliebigenZeichen/
            / "_fx"gefolgtVonZahl(en)/, /"-" oder "+" oder "."/, /"_v"gefolgtVonZahlen
            */
            var regs = [/\.uc\.js$/,/\.uc\.xul$/,/^ucjs_/,/_\d.+/,/_fx\d+/,/[-+\.]/g,/_v\d+/];
            for (var i = 0; i < regs.length; i++) {
                sName = sName.replace(regs[i],"");
            }
            return "https://github.com/ardiman/userChrome.js/tree/master/" + sName;
        },
    
        writeAddons: function(file,format){
            var a, t, c, n, d, atype, aout, thisaddon;
            var output = "";
            var addontpl = "";
            var addontplwithouturl = "";
            Cu.import("resource://gre/modules/osfile.jsm");
    
            addontpl = this.MYTPLS[format].tpladdon;
            addontplwithouturl = this.MYTPLS[format].tpladdon_without_url;
            output += this.MYTPLS[format].intro;
    
            if (this.SHOWDATE) output +=  this.MYTPLS[format].tpllastupd.replace(/%%lastupd%%/g,this.MYSTOR.lastupd)+"\n";
            if (this.SHOWUSERAGENT) output +=  this.MYTPLS[format].tpluseragent.replace(/%%useragent%%/g,this.MYSTOR.useragent)+"\n";
    
            for (t = 0; t < this.WHICHTYPES.length; t++) {
                atype = this.WHICHTYPES[t];
                c = this.MYSTOR[atype].length;
                n = 0;
                d = 0;
                output += this.MYTPLS[format].tpladdongrp_title[atype].replace(/%%count%%/g,c)+"\n";
                if (this.MYTPLS[format].tpladdongrp_intro[atype] == undefined) {
                    output += this.MYTPLS[format].tpladdongrp_intro.default + (this.MYTPLS[format].tpladdongrp_intro.default.length > 0 ? "\n" : "");
                } else {
                    output += this.MYTPLS[format].tpladdongrp_intro[atype] + (this.MYTPLS[format].tpladdongrp_intro[atype].length > 0 ? "\n" : "");
                }
                if (this.MYTPLS[format].tpladdongrp_list_intro[atype] == undefined) {
                    output += this.MYTPLS[format].tpladdongrp_list_intro.default+"\n";
                } else {
                    output += this.MYTPLS[format].tpladdongrp_list_intro[atype]+"\n";
                }
                for (a = 0; a < c; a++) {
                    thisaddon =  this.MYSTOR[atype][a];
                    // console.log(atype + " " + thisaddon.name + " " + thisaddon.active);
                    if (thisaddon.homepage == undefined) {
                        aout = addontplwithouturl;
                    } else {
                        aout = addontpl;
                        aout = aout.replace(/%%homepageURL%%/g,thisaddon.homepage.replace(/&(?!amp;)/g,'&amp;'));
                    }
                    aout = aout.replace(/%%name%%/g,thisaddon.name);
                    if (thisaddon.version == undefined) {
                        if (thisaddon.description != undefined) {
                            aout = aout.replace(/ %%version%%: /g,": ");
                        } else {
                            aout = aout.replace(/ %%version%%: /g,"");
                        }
                    }
                    aout = aout.replace(/%%version%%/g,thisaddon.version);
                    if (thisaddon.description != undefined) {
                        aout = aout.replace(/%%description%%/g,thisaddon.description);
                    } else {
                        aout = aout.replace(/%%description%%/g,"");
                    }
                    if (thisaddon.active !== true) {
                        aout = aout.replace(/%%class%%/g,this.MYTPLS[format].inactiveclass);
                        aout = aout.replace(/%%disabled%%/g,this.MYTPLS[format].disabledtext);
                        d++;
                    } else {
                        aout = aout.replace(/%%class%%/g,this.MYTPLS[format].activeclass);
                        aout = aout.replace(/%%disabled%%/g,"");
                        n++;
                    }
                    output += aout;
                }
                output = output.replace(/%%countactive%%/g,n).replace(/%%countinactive%%/g,d);
                output += this.MYTPLS[format].tpladdongrp_list_outro;
                output += this.MYTPLS[format].tpladdongrp_outro;
            }
            output += this.MYTPLS[format].outro+"\n";
            let encoder = new TextEncoder();
            let myarray = encoder.encode(output);
            let promise = OS.File.writeAtomic(file, myarray);
            return output;
        },
    
        showAddons: function(e,RanPath,OpenPath,format,myoutput) {
            // zeigt das EXPORTFILE im Editor oder im Browser (Mittelklick) an
            switch (e) {
                case 0:
                    var file = new this.FILEUTILS.File(RanPath);
                    var proc = Cc["@mozilla.org/process/util;1"].createInstance(Components.interfaces.nsIProcess);
                    var args = [OpenPath];
                    // falls der im Konfigurationsabschnitt definierte Editor nicht gefunden wird, auf Einstellung in about:config ausweichen:
                    if (!this.fileExists(RanPath)) {
                        console.log("AddonLister meldet: Editor nicht gefunden, ausweichen auf about:config.");
                        var pref = Cc["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
                        RanPath = pref.getCharPref("view_source.editor.path");
                        file = new this.FILEUTILS.File(RanPath);
                    }
                    proc.init(file);
                    proc.run(false, args, args.length);
                    break;
                case 1:
                    if (this.MYTPLS[format].opendatauri) {
                        var datastring = myoutput.replace(/\n/g,"%0A").replace(/#/g,"%23");
                        // getBrowser().selectedTab = getBrowser().addTrustedTab('data:text/plain;charset=utf-8,' + datastring);
                        openTrustedLinkIn('data:text/plain;charset=utf-8,' + datastring, "tab");
                        XULBrowserWindow.statusTextField.label = "Export nach  »"+ OpenPath + "« ist erfolgt.";
                    } else {
                        // alert sorgt ein wenig dafür, dem OS Zeit fürs Speichern der Datei zu geben ...
                        alert("Export nach »"+ OpenPath + "« ("+ format + "-format) ist erfolgt.");
                        openTrustedLinkIn(OpenPath, "tab");
                        //getBrowser().selectedTab = getBrowser().addTrustedTab(OpenPath);
                    }
                    break;
                default:
                    XULBrowserWindow.statusTextField.label = "Export nach  »"+ OpenPath + "« ist erfolgt.";
                    break;
            }
        }
    
    };
    
    ADONLI.init();
    Alles anzeigen

    Klick auf den Button mit Links oder Rechts ergibt keine Reaktion und keine Fehleranzeige im Firefox.

    Fehlerkonsole:

    Uncaught NS_ERROR_FILE_NOT_FOUND: Component returned failure code: 0x80520012 (NS_ERROR_FILE_NOT_FOUND) [nsIXPCComponents_Utils.import]

    writeAddons file:///C:/Users/Martin/AppData/Roaming/Mozilla/Firefox/Profiles/............/chrome/AddOnLister.uc.js:473

    launch file:///C:/Users/Martin/AppData/Roaming/Mozilla/Firefox/Profiles/............./chrome/AddOnLister.uc.js:334

    onclick chrome://browser/content/browser.xhtml:1

    AddOnLister.uc.js:473

    Und fortlaufend:

    AbortError: Actor 'Conduits' destroyed before query 'RuntimeMessage' was resolved 2 ConduitsParent.jsm:375

  • About Seiten mit CSS Codes anpassen

    • Boersenfeger
    • 18. Mai 2023 um 11:59

    Ich wollte mit meinem Statement ja auch nur darauf hinweisen, das es genau mit der Breite zu tun hat und sich bei mir mit den neunen Versionen von Firefox und Nightly nichts verändert hat.

    Diese abweichende Breite verwende ich in allen about:.... Codes, da diese auf meinen Bildschirm angepasst ist. :)

  • About Seiten mit CSS Codes anpassen

    • Boersenfeger
    • 18. Mai 2023 um 11:38

    Nur zur Information:

    Ich habe, hatte hier mit diesem Code keine Probleme....

    CSS
    /* About:Support */
    
    @namespace url(http://www.w3.org/1999/xhtml);
    @-moz-document url-prefix(about:support) {
    
    
    body::before {content: "Boersenfegers Nightly";
    margin-left: 0px;
    font-size: 25px;
    font-weight: bold;
    color: red;}
    
    
    html{background:#ffffff !important;}
    
    
    body > h1:nth-child(2){margin-top: 10px !important;}
    
    
    body{margin-left: 80px !important; max-width: 1540px !important;}
    
    
    .action-box{width: 30% !important; border-radius:24px !important;}
    #reset-box, #safe-mode-box {margin-left: 11px !important;}
    
    
    #security-software-table > thead:nth-child(1) > tr:nth-child(1) > th:nth-child(1),
    #contents > table:nth-child(33) > tbody:nth-child(1) > tr:nth-child(1) > th:nth-child(1),
    table.prefs-table:nth-child(23) > thead:nth-child(1) > th:nth-child(1),
    #contents > table:nth-child(37) > tbody:nth-child(1) > tr:nth-child(1) > th:nth-child(1),
    #intl-localeservice-tbody > tr:nth-child(1) > th:nth-child(1),
    #sandbox-tbody > tr:nth-child(1) > th:nth-child(1),
    #libversions-tbody > tr:nth-child(1) > th:nth-child(1),
    #contents > table:nth-child(27) > tbody:nth-child(1) > tr:nth-child(1) > th:nth-child(1),
    table.prefs-table:nth-child(18) > thead:nth-child(1) > th:nth-child(1),
    table.prefs-table:nth-child(20) > thead:nth-child(1),
    table.prefs-table:nth-child(20) > thead:nth-child(1) > th:nth-child(1),
    #media-info-tbody > tr:nth-child(1) > th:nth-child(1),
    #contents > table:nth-child(10) > thead:nth-child(1) > tr:nth-child(1) > th:nth-child(1),
    #contents > table:nth-child(8) > thead:nth-child(1) > tr:nth-child(1),
    #contents > table:nth-child(8) > thead:nth-child(1) > tr:nth-child(1) > th:nth-child(1),
    #graphics-features-tbody > tr:nth-child(1) > th:nth-child(1),
    #contents > table:nth-child(14),
    #graphics-features-tbody,
    #contents > table:nth-child(29) > tbody:nth-child(1) > tr:nth-child(1) > th:nth-child(1),
    #contents > table:nth-child(12) > thead:nth-child(1) > tr:nth-child(1) > th:nth-child(1),
    #contents > table:nth-child(2){border-top-left-radius:24px !important;}
    
    
    #contents > table:nth-child(2) > tbody:nth-child(1) > tr:nth-child(1) > th:nth-child(1)
    {border-top-left-radius:24px !important; padding-top: 8px !important; padding-bottom: 8px !important;}
    
    
    #security-software-table > thead:nth-child(1) > tr:nth-child(1) > th:nth-child(2),
    #startup-cache-disk-cache-path,
    table.prefs-table:nth-child(23) > thead:nth-child(1) > th:nth-child(2),
    #remote-debugging-accepting-connections,
    #intl-localeservice-tbody > tr:nth-child(1) > th:nth-child(1),
    #sandbox-tbody > tr:nth-child(1) > td:nth-child(2),
    #libversions-tbody > tr:nth-child(1) > th:nth-child(3),
    #a11y-activated,
    table.prefs-table:nth-child(18) > thead:nth-child(1) > th:nth-child(2),
    #media-info-tbody > tr:nth-child(1) > td:nth-child(2),
    #contents > table:nth-child(10) > thead:nth-child(1) > tr:nth-child(1) > th:nth-child(4),
    #contents > table:nth-child(8),
    #contents > table:nth-child(8) > thead:nth-child(1),
    #contents > table:nth-child(8) > thead:nth-child(1) > tr:nth-child(1),
    #contents > table:nth-child(8) > thead:nth-child(1) > tr:nth-child(1) > th:nth-child(3),
    #graphics-features-tbody > tr:nth-child(1) > th:nth-child(1),
    #contents > table:nth-child(14),
    #graphics-features-tbody,
    #graphics-features-tbody > tr:nth-child(1),
    #contents > table:nth-child(2),
    table.prefs-table:nth-child(20) > thead:nth-child(1),
    table.prefs-table:nth-child(20) > thead:nth-child(1) > th:nth-child(2),
    #remote-processes-table > thead:nth-child(1) > tr:nth-child(1) > th:nth-child(2),
    #contents > table:nth-child(12) > thead:nth-child(1) > tr:nth-child(1) > th:nth-child(4),
    #application-box {border-top-right-radius:24px !important;}
    
    
    #security-software-table > tbody:nth-child(2) > tr:nth-child(3) > th:nth-child(1),
    tr.no-copy:nth-child(25) > th:nth-child(1),
    #contents > table:nth-child(33) > tbody:nth-child(1) > tr:nth-child(4) > th:nth-child(1),
    #graphics-decisions-tbody > tr:last-child > th:nth-child(1),
    #media-capabilities-tbody > tr:nth-child(2) > td:nth-child(1),
    #locked-prefs-tbody > tr:last-child > td:nth-child(1),
    #contents > table:nth-child(37) > tbody:nth-child(1) > tr:nth-child(2) > th:nth-child(1),
    #intl-ospreferences-tbody > tr:nth-child(3) > th:nth-child(1),
    #libversions-tbody > tr:nth-child(6) > td:nth-child(1),
    #contents > table:nth-child(27) > tbody:nth-child(1) > tr:nth-child(4) > th:nth-child(1),
    #prefs-tbody > tr:last-child > td:nth-child(1),
    #features-tbody > tr:last-child > td:nth-child(1),
    #contents > table:nth-child(8),
    #contents > table:nth-child(14),
    #prefs-tbody > tr:nth-child(79),
    #contents > table:nth-child(2),
    tr.no-copy:nth-child(22) > th:nth-child(1),
    #contents > table:nth-child(2) > tbody:nth-child(1),
    #contents > table:nth-child(29) > tbody:nth-child(1) > tr:nth-child(4) > th:nth-child(1),
    #graphics-workarounds-tbody > tr:last-child > th:nth-child(1),
    #prefs-tbody > tr:last-child > td:nth-child(1),
    #processes-tbody > tr:last-child > td:nth-child(1),
    #graphics-failures-tbody > tr:last-child > th:nth-child(1),
    #extensions-tbody > tr:last-child > td:nth-child(1),
    tr.no-copy:nth-child(24) > th:nth-child(1),
    tr.no-copy:nth-child(21) > th:nth-child(1){border-bottom-left-radius:24px !important;}
    
    
    #security-software-firewall,
    tr.no-copy:nth-child(25) > td:nth-child(2),
    #startup-cache-wrote-to-disk-cache,
    #graphics-decisions-tbody > tr:last-child > td:nth-child(2),
    #media-capabilities-tbody > tr:nth-child(2) > td:nth-child(1),
    #locked-prefs-tbody > tr:last-child > td:nth-child(2),
    #remote-debugging-url,
    #intl-osprefs-regionalprefs,
    #sandbox-tbody > tr:nth-child(2) > td:nth-child(2),
    #libversions-tbody > tr:nth-child(6) > td:nth-child(3),
    #a11y-instantiator,
    #prefs-tbody > tr:last-child > td:nth-child(2),
    #extensions-tbody > tr:last-child > td:nth-child(4),
    #features-tbody > tr:last-child > td:nth-child(3),
    #contents > table:nth-child(14),
    #prefs-tbody > tr:nth-child(79),
    #contents > table:nth-child(2),
    tr.no-copy:nth-child(22) > td:nth-child(2),
    #prefs-tbody > tr:last-child > td:nth-child(2),
    #processes-tbody > tr:last-child > td:nth-child(2)
    #graphics-failures-tbody > tr:last-child > td:nth-child(2),
    #graphics-workarounds-tbody > tr:last-child > td:nth-child(2),
    #processes-tbody > tr:last-child > td:nth-child(2),
    tr.no-copy:nth-child(24) > td:nth-child(2),
    tr.no-copy:nth-child(21) > td:nth-child(2) {border-bottom-right-radius:24px !important;}
    
    
    #contents > table:nth-child(25) > tbody:nth-child(1) > tr:nth-child(1) > th:nth-child(1),
    table.prefs-table:nth-child(21) > thead:nth-child(1) > th:nth-child(1),
    #contents > table:nth-child(10),
    #contents > table:nth-child(8),
    #crashes-table > thead:nth-child(1) > tr:nth-child(1) > th:nth-child(1)
    {border-top-left-radius:24px !important; border-bottom-left-radius:24px !important;}
    
    
    #javascript-incremental-gc,
    table.prefs-table:nth-child(21) > thead:nth-child(1) > th:nth-child(2),
    #contents > table:nth-child(10),
    #contents > table:nth-child(8),
    #crashes-table > thead:nth-child(1) > tr:nth-child(1) > th:nth-child(2)
    {border-bottom-right-radius:24px !important; border-top-right-radius:24px !important;}
    
    
    #extensions-tbody > tr:nth-child(13),
    #intl-ospreferences-tbody > tr:nth-child(3),
    #sandbox-tbody, #contents > table:nth-child(8),
    #contents > table:nth-child(25) > tbody:nth-child(1),
    table.prefs-table:nth-child(21), #prefs-tbody > tr:nth-child(140),
    #contents > table:nth-child(29),
    #contents > table:nth-child(27){line-height: 2.0 !important;}
    
    
    #graphics-workarounds-tbody > tr:nth-child(2),
    #graphics-workarounds-tbody > tr:nth-child(2) > th:nth-child(1),
    #graphics-workarounds-tbody > tr:nth-child(2) > td:nth-child(2){line-height: 2.5 !important;}
    
    
    #graphics-decisions-tbody > tr:nth-child(n+2) > td:nth-child(2) > table:nth-child(1)
    {margin-left: -15px!important;}
    
    
    #security-software-table,
    #contents > table:nth-child(n+1),
    table.prefs-table:nth-child(n+1),
    #crashes-table{border-radius:24px !important;}
    
    
    td, th{padding-left: 15px !important;}
    
    
    #copy-raw-data-to-clipboard {min-width: 330px !important;}
    
    
    #clear-startup-cache-box > h3,
    #safe-mode-box > h3, #reset-box > h3, h2, h1 {color: #057A7A !important;}
    #clear-startup-cache-box > h3 {margin-left: 4px !important;}
    
    
    #prefs-user-js-section > h3, h2{margin-left: 8px !important; color: red !important;}
    
    
    #safe-mode-box > h3, #reset-box > h3 {margin-left: 4px !important;}
    
    
    .action-box{background: #FDF5E6 !important;}
    
    
    #graphics-decisions-tbody > tr:nth-child(n+1) > td > table,
    #graphics-decisions-tbody > tr:nth-child(n+1) > td > table > tr > td
    {border: none! important;}
    
    
    #graphics-decisions-tbody > tr:nth-child(n+1) > td > table > tr > td:hover,
    #graphics-decisions-tbody > tr:nth-child(n+1) > td > table > tr:hover
    {border: none! important;}
    
    
    #graphics-decisions-tbody > tr:nth-child(n+2) > td:nth-child(2) > table:nth-child(1)
    {margin-left: -15px!important;}
    
    
    #graphics-decisions-tbody > tr:nth-child(n+1) > td:nth-child(2) > table:nth-child(1),
    #graphics-decisions-tbody > tr:nth-child(n+1) > td:nth-child(2) > table:nth-child(1) > tr:nth-child(1)
    {border: none! important;}
    
    
    #graphics-decisions-tbody > tr:nth-child(n+1) > td > table > tr > td:hover,
    #graphics-decisions-tbody > tr:nth-child(n+1) > td > table > tr:hover
    {border: none! important;}
    
    
    td{background: #FFFFF0 !important;}
    td:hover{background: #ffeb99 !important;}
    
    
    th {background-color: #ee7621 !important;}
    th:hover {background-color: #b54f06 !important;}
    
    
    #copy-raw-data-to-clipboard{
    appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild73.png")no-repeat !important;
    padding-left:20px!important;
    padding-bottom: 5px!important;
    background-position:14px 6px!important;
    font-size:14.0px!important;
    border-style: outset !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-width:2px !important;
    border-radius:12px!important;
    margin-right:10px!important;
    color:black !important;}
    
    
    #copy-raw-data-to-clipboard:hover{
    appearance:none!important;
    background: #B2EDFA url("..//icons/Bild73.png")no-repeat !important;
    padding-left:20px!important ;
    border-style: outset !important;
    border-width:2px !important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    background-position:14px 6px!important;}
    
    
    #copy-to-clipboard {min-width: 290px !important;}
    
    
    #copy-to-clipboard{
    appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild74.png")no-repeat !important;
    padding-left:20px!important;
    padding-bottom: 5px!important;
    background-position:14px 6px!important;
    font-size:14.0px!important;
    border-style: outset !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-width:2px !important;
    border-radius:12px!important;
    color:black !important;}
    
    
    #copy-to-clipboard:hover{
    appearance:none!important;
    background: #B2EDFA url("..//icons/Bild74.png")no-repeat !important;
    padding-left:20px!important ;
    border-style: outset !important;
    border-width:2px !important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    background-position:14px 6px!important;}
    
    
    #show-update-history-button{min-width: 220px !important;}
    
    
    #show-update-history-button{
    appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild75.png")no-repeat !important;
    padding-left:19px!important;
    padding-bottom: 5px!important;
    background-position:8px 5px!important;
    color:black!important;
    margin-left: -3px !important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:8px!important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    border-radius:14px!important;}
    
    
    #show-update-history-button:hover{
    appearance:none!important;
    background: #B2EDFA url("..//icons/Bild75.png")no-repeat !important;
    background-position:8px 5px!important;
    border-style: outset !important;
    border-width:2px !important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;}
    
    
    #update-dir-button{min-width: 220px !important;}
    
    
    #update-dir-button{
    appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild76.png")no-repeat !important;
    padding-left:19px!important;
    padding-bottom: 5px!important;
    background-position:8px 5px!important;
    color:black!important;
    margin-left: -3px !important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:76px!important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    border-radius:14px!important;}
    
    
    #update-dir-button:hover{
    appearance:none!important;
    background: #B2EDFA url("..//icons/Bild76.png")no-repeat !important;
    background-position:8px 5px!important;
    border-style: outset !important;
    border-width:2px !important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;}
    
    
    #profile-dir-button {min-width: 217px !important;}
    
    
    #profile-dir-button{
    appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild76.png")no-repeat !important;
    padding-left:32px!important;
    background-position:8px 4px!important;
    color:black!important;
    margin-left: -3px !important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:76px!important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    border-radius:14px!important;}
    
    
    #profile-dir-button:hover{
    appearance:none!important;
    background: #B2EDFA url("..//icons/Bild76.png")no-repeat !important;
    padding-left:32px!important ;
    border-style: outset !important;
    border-width:2px !important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    background-position:8px 4px!important;}
    
    
    #reset-box-button{
    appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild77.png")no-repeat !important;
    padding-left:40px!important;
    padding-right: 130px !important;
    padding-bottom: 4px!important;
    background-position:14px 5px!important;
    font-size:14.0px!important;
    border-style: outset !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-width:2px !important;
    border-radius:12px !important;
    color:black !important; }
    
    
    #reset-box-button:hover{
    appearance:none!important;
    background: #B2EDFA url("..//icons/Bild77.png")no-repeat !important;
    border-style: outset !important;
    border-width:2px !important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    background-position:14px 5px!important;}
    
    
    #restart-in-safe-mode-button{
    appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild78.png")no-repeat !important;
    padding-left:40px!important;
    padding-right:5px!important;
    background-position:14px 5px!important;
    font-size:14.0px!important;
    border-style: outset !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-width:2px !important;
    border-radius:12px !important;
    color:black !important; }
    
    
    #restart-in-safe-mode-button:hover{
    appearance:none!important;
    background: #B2EDFA url("..//icons/Bild78.png")no-repeat !important;
    background-position:14px 5px!important;
    border-style: outset !important;
    border-width:2px !important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;}
    
    #clear-startup-cache-button{
    appearance:none!important;
    background: #F0F0F0 url("..//icons/database_delete.png")no-repeat !important;
    padding-left:40px!important;
    padding-right:116px!important;
    margin-left: 10px !important;
    background-position:14px 6px!important;
    font-size:14.0px!important;
    border-style: outset !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-width:2px !important;
    border-radius:12px !important;
    color:black !important; }
    
    
    #clear-startup-cache-button:hover{
    appearance:none!important;
    background: #B2EDFA url("..//icons/database_delete.png")no-repeat !important;
    background-position:14px 6px!important;
    border-style: outset !important;
    border-width:2px !important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;}
    
    
    #supportLink{
    appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild52.gif") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:13px!important;
    padding-left:29px!important;
    padding-bottom: 2px !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width: 2px !important;
    background-position:6px 2px!important;
    border-radius:14px!important;
    line-height: 2.2 !important;}
    
    
    #supportLink:hover{
    appearance:none!important;
    background: #B2EDFA url("..//icons/Bild52.gif") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:13px!important;
    padding-left:29px!important;
    background-position:6px 2px!important;
    border-radius:14px!important;
    border-style: outset !important;
    border-width:2px !important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;}
    
    
    a[href="about:plugins"]{
    appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    margin-left: -3px !important;
    font-size:14.0px!important;
    text-decoration:none!important;
    padding-right:96px!important;
    padding-left:35px!important;
    padding-bottom: 2px !important;
    padding-top: 2px !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    background-position:8px 2px!important;
    border-radius:14px!important;
    min-height: 28px !important;
    line-height: 2.2 !important;}
    
    
    a[href="about:buildconfig"]{
    appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    margin-left: -3px !important;
    font-size:14.0px!important;
    text-decoration:none!important;
    padding-right:73px!important;
    padding-left:35px!important;
    padding-bottom: 2px !important;
    padding-top: 2px !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    background-position:8px 2px!important;
    border-radius:14px!important;
    line-height: 2.2 !important;}
    
    
    #crashes-allReportsWithPending{
    appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    margin-left: 3px !important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:15px!important;
    padding-left:35px!important;
    padding-bottom: 2px !important;
    padding-top: 2px !important;
    max-width: 125px !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    background-position:8px 2px!important;
    border-radius:14px!important;}
    
    
    #crashes-allReportsWithPending:hover{
    appearance:none!important;
    background: #B2EDFA url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    margin-left: 3px !important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:15px!important;
    padding-left:35px!important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    border-style: outset !important;
    border-width:2px !important;
    background-position:8px 2px!important;
    border-radius:14px!important;}
    
    
    a[href="about:plugins"]:hover{
    appearance:none!important;
    background: #B2EDFA url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    background-position:8px 2px!important;
    border-radius:14px!important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    border-style: outset !important;
    border-width:2px !important;}
    
    
    a[href="about:buildconfig"]:hover{
    appearance:none!important;
    background: #B2EDFA url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    background-position:8px 2px!important;
    border-radius:14px!important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    border-style: outset !important;
    border-width:2px !important;}
    
    
    a[href="about:serviceworkers"]{
    appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    margin-left: -3px !important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:50px!important;
    padding-left:35px!important;
    padding-bottom: 2px !important;
    padding-top: 2px !important;
    max-width: 125px !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    background-position:8px 2px!important;
    border-radius:14px!important;
    line-height: 2.2 !important;}
    
    
    a[href="about:serviceworkers"]:hover{
    appearance:none!important;
    background: #B2EDFA url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-left:35px!important;
    background-position:8px 2px!important;
    border-radius:14px!important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    border-style: outset !important;
    border-width:2px !important;}
    
    
    a[href="about:memory"]{
    appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    margin-left: -3px !important;
    font-size:14.0px!important;
    text-decoration:none!important;
    padding-right:88px!important;
    padding-left:35px!important;
    padding-bottom: 2px !important;
    padding-top: 2px !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    background-position:8px 2px!important;
    border-radius:14px!important;
    line-height: 2.2 !important;}
    
    
    
    
    a[href="about:memory"]:hover{
    appearance:none!important;
    background: #B2EDFA url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    background-position:8px 2px!important;
    border-radius:14px!important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    border-style: outset !important;
    border-width:2px !important;}
    
    
    #prefs-user-js-link{
    appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    margin-left: 3px !important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:15px!important;
    padding-left:35px!important;
    padding-bottom: 2px !important;
    padding-top: 2px !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    background-position:8px 2px!important;
    border-radius:14px!important;}
    
    
    #prefs-user-js-link:hover{
    appearance:none!important;
    color:black!important; background: #B2EDFA url("..//icons/Bild3.png") no-repeat !important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:15px!important;
    padding-left:35px!important;
    background-position:8px 2px!important;
    border-radius:14px!important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    border-style: outset !important;
    border-width:2px !important;}
    
    
    a[href="about:performance"]{
    appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    margin-left: -3px !important;
    margin-top: 3px !important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:63px!important;
    padding-left:35px!important;
    padding-bottom: 2px !important;
    padding-top: 2px !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    background-position:8px 2px!important;
    border-radius:14px!important;
    line-height: 2.2 !important;}
    
    
    a[href="about:performance"]:hover{
    appearance:none!important;
    background: #B2EDFA url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    background-position:8px 2px!important;
    border-radius:14px!important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    border-style: outset !important;
    border-width:2px !important;}
    
    
    a[href="about:profiles"]{
    appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    margin-left: -3px !important;
    margin-top: 3px !important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:94px!important;
    padding-left:35px!important;
    padding-bottom: 2px !important;
    padding-top: 2px !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    background-position:8px 2px!important;
    border-radius:14px!important;
    line-height: 2.2 !important;}
    
    
    a[href="about:profiles"]:hover{
    appearance:none!important;
    background: #B2EDFA url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    background-position:8px 2px!important;
    border-radius:14px!important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    border-style: outset !important;
    border-width:2px !important;}
    
    
    #verify-place-integrity-button{
    appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    margin-left: 3px !important;
    margin-top: 3px !important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:20px!important;
    padding-left:35px!important;
    padding-bottom: 2px !important;
    padding-top: 2px !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    background-position:8px 4px!important;
    border-radius:14px!important;}
    
    
    #verify-place-integrity-button:hover{
    appearance:none!important;
    background: #B2EDFA url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    background-position:8px 4px!important;
    border-radius:14px!important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    border-style: outset !important;
    border-width:2px !important;}
    
    
    button[data-l10n-id="reset-on-next-restart"]{
    appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild85.png") no-repeat !important;
    color:black!important;
    margin-left: 3px !important;
    margin-top: 3px !important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:20px!important;
    padding-left:35px!important;
    padding-bottom: 2px !important;
    padding-top: 2px !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    background-position:8px 5px!important;
    border-radius:14px!important;}
    
    
    button[data-l10n-id="reset-on-next-restart"]:hover{
    appearance:none!important;
    background: #B2EDFA url("..//icons/Bild85.png") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    background-position:8px 5px!important;
    border-radius:14px!important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    border-style: outset !important;
    border-width:2px !important;}
    
    
    button[data-l10n-id="gpu-process-kill-button"]{
    appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild117.png") no-repeat !important;
    color:black!important;
    margin-left: 3px !important;
    margin-top: 3px !important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:20px!important;
    padding-left:35px!important;
    padding-bottom: 2px !important;
    padding-top: 2px !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    background-position:8px 5px!important;
    border-radius:14px!important;}
    
    
    button[data-l10n-id="gpu-process-kill-button"]:hover{
    appearance:none!important;
    background: #B2EDFA url("..//icons/Bild117.png") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    background-position:8px 5px!important;
    border-radius:14px!important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    border-style: outset !important;
    border-width:2px !important;}
    
    
    button[data-l10n-id="gpu-device-reset-button"]{
    appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild21.png") no-repeat !important;
    color:black!important;
    margin-left: 3px !important;
    margin-top: 3px !important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:40px!important;
    padding-left:35px!important;
    padding-bottom: 2px !important;
    padding-top: 2px !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    background-position:8px 5px!important;
    border-radius:14px!important;}
    
    
    button[data-l10n-id="gpu-device-reset-button"]:hover{
    appearance:none!important;
    background: #B2EDFA url("..//icons/Bild21.png") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    background-position:8px 6px!important;
    border-radius:14px!important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    border-style: outset !important;
    border-width:2px !important;}
    
    
    button[id="enumerate-database-button"]{
    appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild7.png") no-repeat !important;
    color:black!important;
    margin-left: 3px !important;
    margin-top: 3px !important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:40px!important;
    padding-left:35px!important;
    padding-bottom: 2px !important;
    padding-top: 2px !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    background-position:8px 6px!important;
    border-radius:14px!important;}
    
    
    button[id="enumerate-database-button"]:hover{
    appearance:none!important;
    background: #B2EDFA url("..//icons/Bild7.png") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    background-position:8px 5px!important;
    border-radius:14px!important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    border-style: outset !important;
    border-width:2px !important;}
    
    #remoteprocesses-row > td:nth-child(2) > a:nth-child(1){
    appearance:none!important;
    margin-left: -4px !important;
    background: #F0F0F0 url("..//icons/Bild125.png") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:160px!important;
    padding-left:35px!important;
    padding-bottom: 2px !important;
    padding-top: 2px !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    background-position:8px 3px!important;
    border-radius:14px!important;}
    
    
    #remoteprocesses-row > td:nth-child(2) > a:nth-child(1):hover{
    appearance:none!important;
    background: #B2EDFA url("..//icons/Bild125.png") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    background-position:8px 3px!important;
    border-radius:14px!important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    border-style: outset !important;
    border-width:2px !important;}
    
    
    #remoteprocesses-row,
    #remoteprocesses-row > th:nth-child(1),
    #remoteprocesses-row > td:nth-child(2) {padding-bottom: 10px !important; padding-top: 10px !important;}
    
    #support-printing-clear-settings-button{
    appearance:none!important;
    margin-left: -4px !important;
    background: #F0F0F0 url("..//icons/printer_delete.png") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:20px!important;
    padding-left:40px!important;
    padding-bottom: 2px !important;
    padding-top: 2px !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    background-position:12px 6px!important;
    border-radius:14px!important;}
    
    
    #support-printing-clear-settings-button:hover{
    appearance:none!important;
    background: #B2EDFA url("..//icons/printer_delete.png") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    background-position:12px 6px!important;
    border-radius:14px!important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    border-style: outset !important;
    border-width:2px !important;}
    
    
        tr.no-copy:nth-child(17) > td:nth-child(2) > a:nth-child(1) { 
        appearance:none!important;
        background: #F0F0F0 url("..//icons/Bild3.png") no-repeat !important;
        color:black!important;
        margin-left: -3px !important;
        margin-top: 3px !important;
        font-size:14px!important;
        text-decoration:none!important;
        padding-right:71px!important;
        padding-left:35px!important;
        padding-bottom: 2px !important;
        padding-top: 2px !important;
        border-left-color:  lightblue!important;
        border-top-color:  lightblue!important;
        border-right-color:  dodgerblue!important;
        border-bottom-color:  dodgerblue!important;
        border-style: outset !important;
        border-width:2px !important;
        background-position:8px 2px!important;
        border-radius:14px!important;
        line-height: 2.2 !important;}
        
        tr.no-copy:nth-child(17) > td:nth-child(2) > a:nth-child(1):hover{
        appearance:none!important;
        background: #B2EDFA url("..//icons/Bild3.png") no-repeat !important;
        color:black!important;
        font-size:14px!important;
        text-decoration:none!important;
        background-position:8px 2px!important;
        border-radius:14px!important;
        border-left-color:  #bbddff !important;
        border-top-color:  #bbddff !important;
        border-right-color:  #11508d !important;
        border-bottom-color:  #11508d !important;
        border-style: outset !important;
        border-width:2px !important;}
        
        #place-database-stats-toggle{
        appearance:none!important;
        background: #F0F0F0 url("..//icons/Bild3.png") no-repeat !important;
        color:black!important;
        margin-left: 3px !important;
        margin-top: 3px !important;
        font-size:14px!important;
        text-decoration:none!important;
        padding-right:20px!important;
        padding-left:35px!important;
        padding-bottom: 2px !important;
        padding-top: 2px !important;
        border-left-color:  lightblue!important;
        border-top-color:  lightblue!important;
        border-right-color:  dodgerblue!important;
        border-bottom-color:  dodgerblue!important;
        border-style: outset !important;
        border-width:2px !important;
        background-position:8px 4px!important;
        border-radius:14px!important;    }
            
        #place-database-stats-toggle:hover{
        appearance:none!important;
        background: #B2EDFA url("..//icons/Bild3.png") no-repeat !important;
        color:black!important;
        font-size:14px!important;
        text-decoration:none!important;
        background-position:8px 4px!important;
        border-radius:14px!important;
        border-left-color:  #bbddff !important;
        border-top-color:  #bbddff !important;
        border-right-color:  #11508d !important;
        border-bottom-color:  #11508d !important;
        border-style: outset !important;
        border-width:2px !important;}    
        
        a[href="about:processes"]{
        appearance:none!important;
        background: #F0F0F0 url("..//icons/Bild3.png") no-repeat !important;
        color:black!important;
        margin-left: -3px !important;
        font-size:14.0px!important;
        text-decoration:none!important;
        padding-right:80px!important;
        padding-left:35px!important;
        padding-bottom: 2px !important;
        padding-top: 2px !important;
        border-left-color:  lightblue!important;
        border-top-color:  lightblue!important;
        border-right-color:  dodgerblue!important;
        border-bottom-color:  dodgerblue!important;
        border-style: outset !important;
        border-width:2px !important;
        background-position:8px 2px!important;
        border-radius:14px!important;
        line-height: 2.2 !important;}
    
        a[href="about:processes"]:hover{
        appearance:none!important;
        background: #B2EDFA url("..//icons/Bild3.png") no-repeat !important;
        color:black!important;
        font-size:14px!important;
        text-decoration:none!important;
        background-position:8px 2px!important;
        border-radius:14px!important;
        border-left-color:  #bbddff !important;
        border-top-color:  #bbddff !important;
        border-right-color:  #11508d !important;
        border-bottom-color:  #11508d !important;
        border-style: outset !important;
        border-width:2px !important;}
        
        #policies-status > a:nth-child(1){
        appearance:none!important;
        margin-left: -4px !important;
        background: #F0F0F0 url("..//icons/Bild3.png") no-repeat !important;
        color:black!important;
        font-size:14px!important;
        text-decoration:none!important;
        padding-right:145px!important;
        padding-left:35px!important;
        padding-bottom: 2px !important;
        padding-top: 2px !important;
        border-left-color: lightblue!important;
        border-top-color: lightblue!important;
        border-right-color: dodgerblue!important;
        border-bottom-color: dodgerblue!important;
        border-style: outset !important;
        border-width:2px !important;
        background-position:8px 3px!important;
        border-radius:14px!important;}
    
        #policies-status > a:nth-child(1):hover{
        appearance:none!important;
        background: #B2EDFA url("..//icons/Bild3.png") no-repeat !important;
        color:black!important;
        font-size:14px!important;
        text-decoration:none!important;
        background-position:8px 3px!important;
        border-radius:14px!important;
        border-left-color: #bbddff !important;
        border-top-color: #bbddff !important;
        border-right-color: #11508d !important;
        border-bottom-color: #11508d !important;
        border-style: outset !important;
        border-width:2px !important;}
        
        #about-studies-section > p:nth-child(1) > a:nth-child(1){
        appearance:none!important;
        margin-left: -2px !important;
        background: #F0F0F0 url("..//icons/studi.png") no-repeat !important;
        color:black!important;
        font-size:14px!important;
        text-decoration:none!important;
        padding-right:20px!important;
        padding-left:40px!important;
        padding-bottom: 4px !important;
        padding-top: 2px !important;
        border-left-color: lightblue!important;
        border-top-color: lightblue!important;
        border-right-color: dodgerblue!important;
        border-bottom-color: dodgerblue!important;
        border-style: outset !important;
        border-width:2px !important;
        background-position:12px 5px!important;
        border-radius:14px!important;}
            
        #about-studies-section > p:nth-child(1) > a:nth-child(1):hover{
        appearance:none!important;
        background: #B2EDFA url("..//icons/studi.png") no-repeat !important;
        color:black!important;
        font-size:14px!important;
        text-decoration:none!important;
        background-position:12px 5px!important;
        border-radius:14px!important;
        border-left-color: #bbddff !important;
        border-top-color: #bbddff !important;
        border-right-color: #11508d !important;
        border-bottom-color: #11508d !important;
        border-style: outset !important;
        border-width:2px !important;}
        
        #about-studies-section > p:nth-child(1){
        line-height: 2 !important;
        }
        
            a[href="about:third-party"]{
        appearance:none!important;
        background: #F0F0F0 url("..//icons/Bild3.png") no-repeat !important;
        color:black!important;
        margin-left: -3px !important;
        margin-top: 3px !important;
        font-size:14px!important;
        text-decoration:none!important;
        padding-right:71px!important;
        padding-left:35px!important;
        padding-bottom: 2px !important;
        padding-top: 2px !important;
        border-left-color:  lightblue!important;
        border-top-color:  lightblue!important;
        border-right-color:  dodgerblue!important;
        border-bottom-color:  dodgerblue!important;
        border-style: outset !important;
        border-width:2px !important;
        background-position:8px 2px!important;
        border-radius:14px!important;
        line-height: 2.2 !important;}
        
        a[href="about:third-party"]:hover{
        appearance:none!important;
        background: #B2EDFA url("..//icons/Bild3.png") no-repeat !important;
        color:black!important;
        font-size:14px!important;
        text-decoration:none!important;
        background-position:8px 2px!important;
        border-radius:14px!important;
        border-left-color:  #bbddff !important;
        border-top-color:  #bbddff !important;
        border-right-color:  #11508d !important;
        border-bottom-color:  #11508d !important;
        border-style: outset !important;
        border-width:2px !important;}
    }
    Alles anzeigen

  • Lesezeichen verschieben

    • Boersenfeger
    • 16. Mai 2023 um 17:07

    Gerne ;)

  • Cookies behalten aber von Seiten abgemeldet werden

    • Boersenfeger
    • 15. Mai 2023 um 12:40

    // Das ist genauso ein "Angst essen Seele auf-Szenario" wie die "Empfehlung" vieler "Fachzeitschriften", man müsse unbedingt eine Sicherheitssoftware zusätzlich installieren sonst wäre man verloren. 8)

  • Firefox 113 Probleme mit TABs und Kontext Menü

    • Boersenfeger
    • 15. Mai 2023 um 12:35

    Beiden sei Dank... 8)

  • Firefox 113 Probleme mit TABs und Kontext Menü

    • Boersenfeger
    • 15. Mai 2023 um 12:24

    :P

    Vielen Dank für den A....tritt...

  • Firefox 113 Probleme mit TABs und Kontext Menü

    • Boersenfeger
    • 15. Mai 2023 um 12:14
    Zitat von Zitronella

    Dann geh doch dort einfach in die Plugin Verwaltung und installiere dort ComparePlus.

    Zitronella:

    Zwischenfrage: In meiner NPP-Installation finde ich dieses Plugin nicht. Wo gibts das und wie kann ich es dann im Programm aktivieren?

  • Lesezeichen verschieben

    • Boersenfeger
    • 15. Mai 2023 um 12:08

    robotest

    Vielleicht ist das Script OpenBookModoki.uc.js was für dich:

    JavaScript
    // ==UserScript==
    // @name           openbookModoki.uc.js
    // @namespace      https://github.com/Endor8/userChrome.js/blob/master/openbookmodoki/OpenBookModoki.uc.js
    // @description    Lesezeichen Bearbeiten Panel: Veränderbare Panelgröße hinzugefügt. Schlüsselwort und Ordner-Struktur
    // @description    Felder sind geschlossen. Weitere Einstellungen: Beschreibung, Ordner, Dieses Lesezeichen in der Sidebar laden,
    // @description    und Schlüsselwort können ein-/ausgeblendet werden.
    // @include        main
    // @source         https://www.camp-firefox.de/forum/thema/135858-skript-openbookmodoki-funktioniert-nicht-mehr/?postID=1218464#post1218464
    // @author         Alice0775
    // @version        2023/01/27 14:30 Fx109 by Sören Hentzschel
    // @version        2020/05/11 10:30 Fx76 by aborix
    // @version        2018/03/15 10:30 Fx59 by aborix
    // @version        2017/11/17 02:30 Fx57
    // @version        2016/03/20 02:30 remove tst hack
    // @version        2015/08/31 02:30 Fx40
    // @version        2013/07/07 02:30 fix onFolderMenuListCommand
    // @version        2012/12/08 22:30 Bug 788290 Bug 788293 Remove E4X
    // @version        2012/07/24 14:30 Bug 761723 implement toString of function objects by saving source
    // @version        2010/12/06 10:30 Bug Bug 597557 - Bookmarks & Identity panels should use an Arrowpanel
    // @version        2010/04/01 00:00 Bug 556342  - Invalid Treeview in bookmark menu via star pane
    // @version        2009/12/22 00:00 namePicker in front
    // @version        2009/12/21 14:00 BETTER WORKAROUND FIX  Bug 536024 -  When i expand folder-tree on Edit This Bookmark, the bookmarked folder is changed.
    // @version        2009/12/20 16:00 WORKAROUND FIX  Bug 536024 -  When i expand folder-tree on Edit This Bookmark, the bookmarked folder is changed.
    // @version        2009/08/11 18:00 Tree Style Tab0.8.2009081101 Unterstützung für das Umbenennen von Objekten
    // @version        2009/08/07 00:00 Tree Style Tab0.8.2009073102 Treestyletab-Tabzeile ausblenden, wenn vorhanden
    // @version        2009/08/06 19:00 Tree Style Tab0.8.2009073102 Problem, dass der übergeordnete Tab für einen Moment angezeigt wird, behoben 
    // @version        2009/08/06 18:00 Tree Style Tab0.8.2009073102 entsprechend
    // @version        2009/06/24 00:00 Firefox3.5 Es wurde ein Fehler behoben, durch den der Offen / Geschlossen Status des Expanders in der 
    // @version        2009/06/24 00:00 Ordnerstruktur und der Tag-Auswahl nicht gespeichert wurde
    // @version        2009/01/02 02:00 Beschreibung, Position, loadInSidebar, Schlüsselwort und Einstellung anzeigen / ausblenden
    // @version        2009/01/01 22:28
    // ==/UserScript==
    
    var openbookResizer = {
    
      drag  : false,
      height: null,
      width : null,
      eventOffset: null,
      timer: null,
      PREHIDEROW    : "userChrome.openbook.hideRow",  // description, location, loadInSidebar, keyword
      PREFTREEHEIGHT: "userChrome.openbook.treeHeight",
      PREFTREEWIDTH : "userChrome.openbook.treeWidth",
      PREFOPENTREE  : "userChrome.openbook.openTree",
      PREFOPENTAG   : "userChrome.openbook.openTag",
    
      get tree(){
        return gEditItemOverlay._folderTree;
      },
    
      get getHideRow(){
        try {
          return Services.prefs.getCharPref(this.PREHIDEROW).replace(/\s/g,'').slice(',');
        } catch(e) {
          return [];
        }
      },
    
      get getPrefTreeHeight(){
        try {
          return Services.prefs.getIntPref(this.PREFTREEHEIGHT);
        } catch(e) {
          return 150;
        }
      },
      get getPrefTreeWidth(){
        try {
          return Services.prefs.getIntPref(this.PREFTREEWIDTH);
        } catch(e) {
          return 250;
        }
      },
    
      get editBookmarkPanel(){
        return StarUI.panel;
      },
    
      get treeExpander(){
        return gEditItemOverlay._element('foldersExpander');
      },
    
      get tagExpander(){
        return gEditItemOverlay._element('tagsSelectorExpander');
      },
    
      get getPrefOpenTree(){
        try {
          return Services.prefs.getBoolPref(this.PREFOPENTREE);
        } catch(e) {
          return false;
        }
      },
    
      get getPrefOpenTag(){
        try {
          return Services.prefs.getBoolPref(this.PREFOPENTAG);
        } catch(e) {
          return false;
        }
      },
    
      init: function(){
        //window.removeEventListener('load', this, false);
        window.addEventListener('unload', this, false);
    
        var style = " \
          .openbookResizerGripper { \
            list-style-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAApklEQVQokY3QK4uCURCA4QeDLCoIXoIYNFiUFVZBq2JQEEx+UcTmpi1b121eosX/a5lg8jvTzsy8M+8cGGKNusQY44QMlRTgAzOcsUqBitH0FVCWpzeNpmZsytUb4oY9qil6BfRxDaiZp1eO5OBl01u9JX7QxiRFr4XfmNbFZ+gdojbCBbt4a6CDP/wH1McDR9SwwB1b+I4bejG1ER8xxwaluHOJ8RM+9xjk9q2RpwAAAABJRU5ErkJggg=='); \
            cursor: sw-resize; \
          }";
        var sspi = document.createProcessingInstruction(
          'xml-stylesheet',
          'type="text/css" href="data:text/css,' + encodeURIComponent(style) + '"'
        );
        document.insertBefore(sspi, document.documentElement);
        sspi.getAttribute = function(name) {
        return document.documentElement.getAttribute(name);
        };
    
        this.folderTreeRow   = "folderTreeRow";
        this.tagsSelectorRow = "tagsSelectorRow";
    
        gEditItemOverlay.initPanel_org = gEditItemOverlay.initPanel;
        gEditItemOverlay.initPanel = function(aInfo) {
          aInfo.hiddenRows = openbookResizer.getHideRow;
          gEditItemOverlay.initPanel_org(aInfo);
        }
    
        // selected tree visible
        func = gEditItemOverlay.toggleFolderTreeVisibility.toString();
        func = func.replace(
          'var currentFolder = this._getFolderIdFromMenuList();',
          ''
        );
        func = func.replace(
          /expander.className = "expander-up";*/,
          'var currentFolder = this._getFolderIdFromMenuList(); \
          var onselect = this._folderTree.getAttribute("onselect"); \
          this._folderTree.removeAttribute("onselect"); \
          $&;'
        );
        func = func.replace(
          'this._folderTree.focus();',
          '$&; \
          setTimeout(function(tree){ \
            var start = new Object(); \
            var end = new Object(); \
            var numRanges = tree.view.selection.getRangeCount(); \
            if (numRanges > 0) { \
              tree.view.selection.getRangeAt(0,start,end); \
              var v = start.value; \
              tree.treeBoxObject.ensureRowIsVisible(v); \
            } \
            tree.setAttribute("onselect", onselect); \
          }, 0, this._folderTree);'
        );
        try{
          gEditItemOverlay.toggleFolderTreeVisibility = new Function(
             func.match(/\((.*)\)\s*\{/)[1],
             func.replace(/^function\s*.*\s*\(.*\)\s*\{/, '').replace(/}$/, '')
          );
        } catch(ex){}
    
        // selected tree visible
        func = gEditItemOverlay.onFolderMenuListCommand.toString();
        func = func.replace(
          'this._folderTree.selectItems([container]);',
          '{var onselect = this._folderTree.getAttribute("onselect"); \
          this._folderTree.removeAttribute("onselect"); \
          $&; \
          setTimeout(function(tree){ \
            var start = new Object(); \
            var end = new Object(); \
            var numRanges = tree.view.selection.getRangeCount(); \
            if (numRanges > 0) { \
              tree.view.selection.getRangeAt(0,start,end); \
              var v = start.value; \
              tree.treeBoxObject.ensureRowIsVisible(v); \
            } \
            tree.setAttribute("onselect", onselect); \
          }, 0, this._folderTree);}'
        );
        try{
          gEditItemOverlay.onFolderMenuListCommand = new Function(
             func.match(/\((.*)\)\s*\{/)[1],
             func.replace(/^function\s*.*\s*\(.*\)\s*\{/, '').replace(/}$/, '')
          );
        } catch(ex){}
    
        this.editBookmarkPanel.addEventListener('popupshowing', this, false);
        this.editBookmarkPanel.addEventListener('popupshown', this, false);
        this.editBookmarkPanel.addEventListener('popuphiding', this, false);
      },
    
      uninit: function(){
        window.removeEventListener('unload', this, false);
        this.editBookmarkPanel.removeEventListener('popupshowing', this, false);
        this.editBookmarkPanel.removeEventListener('popupshown', this, false);
        this.editBookmarkPanel.removeEventListener('popuphiding', this, false);
      },
    
      handleEvent: function(event){
        switch(event.type){
          case 'unload':
            this.uninit();
            break;
          case 'popupshowing':
            this.popupshowing(event);
            break;
          case 'popupshown':
            this.popupshown(event);
            break;
          case 'popuphiding':
            this.popuphiding(event);
        }
      },
    
      popuphiding: function(event){
        if (this.editBookmarkPanel != event.originalTarget)
          return;
        var state = !gEditItemOverlay._element(this.folderTreeRow).hidden;
        Services.prefs.setBoolPref(this.PREFOPENTREE, state);
        var state = !gEditItemOverlay._element(this.tagsSelectorRow).hidden;
        Services.prefs.setBoolPref(this.PREFOPENTAG, state);
    
        gEditItemOverlay._element(this.folderTreeRow).hidden = true;
        gEditItemOverlay._element(this.tagsSelectorRow).hidden = true;
      },
    
      popupshowing: function(event){
        if (this.editBookmarkPanel != event.originalTarget)
          return;
    
        this.tree.height = this.getPrefTreeHeight;
        //this.tree.width = this.getPrefTreeWidth;
        //this.editBookmarkPanel.width = this.getPrefTreeWidth;
    
        if (!document.getElementById("openbookResizerbottomBox")) {
          var panel = StarUI.panel;
    
          var innerarrow = panel.openOrClosedShadowRoot.querySelector('.panel-arrowcontent');
          if (innerarrow)
            innerarrow.setAttribute('flex', 1);
    
          var box = document.createXULElement("hbox");
          box.setAttribute('id', 'openbookResizerbottomBox');
          box.setAttribute('align',"start");
    
          var resizer = document.createXULElement("image");
          resizer.setAttribute("class", "openbookResizerGripper");
          resizer.setAttribute('onmousedown', 'openbookResizer.mousedown(event)');
    
          box.appendChild(resizer);
          panel.appendChild(box);
    
          panel.setAttribute('onmousemove', 'openbookResizer.mousemove(event)');
          panel.setAttribute('onmouseup', 'openbookResizer.mouseup(event)');
        }
      },
    
      popupshown: function(event){
        if (this.editBookmarkPanel != event.originalTarget)
          return;
        setTimeout(function(self) {
          if (self.getPrefOpenTree &&
              gEditItemOverlay._element(self.folderTreeRow).hidden ) {
            gEditItemOverlay.toggleFolderTreeVisibility();
          }
          if (self.getPrefOpenTag &&
              gEditItemOverlay._element(self.tagsSelectorRow).hidden ) {
            gEditItemOverlay.toggleTagsSelector();
          }
          try {
            gEditItemOverlay._element(Services.prefs
              .getCharPref("browser.bookmarks.editDialog.firstEditField")).focus();
          } catch(e) {}
        }, 100, this);
      },
    
      mousedown: function(event){
        this.drag = true;
        this.height = parseInt(this.tree.boxObject.height);
        this.width = parseInt(this.editBookmarkPanel.boxObject.width);
        this.eventOffset = event;
      },
    
      mousemove: function(event) {
        if (this.timer)
          clearTimeout(this.timer);
        this.timer = setTimeout(function(event, self){
          if (self.drag) {
            // make sure height [150,screen-300] and width is [300,screen-50]
            var newValue;
            newValue = self.height + event.pageY - self.eventOffset.pageY;
            if (newValue <= screen.height - 300 && newValue >= 150) {
              self.tree.height = newValue;
            }
            newValue = self.width - event.pageX + self.eventOffset.pageX;
            if (newValue <= screen.width - 50 && newValue >= 300) {
              //self.tree.width = newValue;
              self.editBookmarkPanel.width = newValue;
            }
          }
        }, 10, event, this);
      },
      mouseup: function(event) {
        if (this.drag) {
          Services.prefs.setIntPref(this.PREFTREEHEIGHT, this.tree.height);
          Services.prefs.setIntPref(this.PREFTREEWIDTH, this.editBookmarkPanel.boxObject.width);
        }
        this.drag = false;
      }
    }
    //window.addEventListener("load", openbookResizer, false);
    openbookResizer.init();
    Alles anzeigen

    Damit kannst du Lesezeichen beim Abspeichern direkt in den von dir gewünschten Lesezeichenordner ablegen...

  • Anmelden bei der Postbank nicht mehr möglich

    • Boersenfeger
    • 14. Mai 2023 um 16:43

    // ..ich schenke ein r

  • Firefox speichert Lesezeichen im falschen Ordner seit 113

    • Boersenfeger
    • 14. Mai 2023 um 16:42

    2002Andreas

    ..um den Fragenden nicht zu verwirren könnte man ggf. die Diskussion um meinen Fehler abtrennen und auf die Wiese stellen!?

  • Firefox speichert Lesezeichen im falschen Ordner seit 113

    • Boersenfeger
    • 14. Mai 2023 um 16:35

    Nee, macht er nicht... einfach mal vertippt... Habe es korrigiert. Danke!

  • Firefox speichert Lesezeichen im falschen Ordner seit 113

    • Boersenfeger
    • 14. Mai 2023 um 16:12

    Bertolie

    Moin, lies/guck zunächst über die Vorbereitung zur Nutzung von Scripten in Firefox:

    Thema

    Videoanleitung für userChrome.css, userContent.css, Vorbereitung Skripte

    Nur zur Info, wer es braucht kann es gerne verlinken.

    Ich habe 3 ausführliche Videos erstellt

    1. wie man eine userChrome.css erstellt und einen Beispiel Code einfügt

    https://mozhelp.ddnss.de/dateien/forum/…e-erstellen.mp4

    2. wie man eine userContent.css erstellt und einen Beispiel Code einfügt

    https://mozhelp.ddnss.de/dateien/forum/…t-erstellen.mp4

    3. Vorbereitung von Skripten ausgehend von https://github.com/Endor8/userChrome.js/

    https://mozhelp.ddnss.de/dateien/forum/…ung-skripte.mp4

    Vielleicht hilft…
    Zitronella
    5. Juni 2021 um 14:43

    und

    Thema

    Funktionelle Änderungen am Firefox durch Skripte

    Als Ersatz für einige Erweiterungen bzw. Funktionen daraus kann man auch diverse Skripte benutzen.

    ( damit sind nicht optische Änderungen am Firefox gemeint)

    Diese werden mit einer userChrome.css Datei erstellt.

    Skripte werden als .uc.js Datei im Unterordner chrome gespeichert.

    Hinweise:

    Ab Firefox Version 139 muss der neue Eintrag in about:config:

    security.allow_unsafe_dangerous_privileged_evil_eval

    auf true umgestellt werden, damit manche Skripte wieder funktionieren.

    Hier der Gund dafür:

    RE:…
    2002Andreas
    15. November 2017 um 16:49

    Dann erstellst du mit einem Editor (Die meisten nutzen hier im Forum wohl Notepad ++)

    eine uc.js-Datei mit dem Inhalt von dieser Seite:

    (Puh, danke für den Hinweis Zitronella)

    https://raw.githubusercontent.com/Endor8/userChrome.js/master/openbookmodoki/OpenBookModoki.uc.js

    und speicherst sie in dem mit den vorherigen Schritten erstellten Ordner "chrome" in deinem Profilordner.

    Dann startest du Firefox neu und kannst danach die Lesezeichen so wieder abspeichern, wie du es von der Erweiterung her gewohnt bist.

    Falls noch etwas unklar ist, einfach nachfragen!

    :)

Unterstütze uns!

Jährlich (2025)

60,4 %

60,4% (392,55 von 650 EUR)

Jetzt spenden
  1. Kontakt
  2. Datenschutz
  3. Impressum
Community-Software: WoltLab Suite™
Mastodon