Vielen Dank!
Beiträge von Boersenfeger
-
-
Passt, wo war der Fehler?
Mit Compare wurde kein Unterschied gefunden...
-
Habe gerade meinen langjährigen Code für die Tabs-Gestaltung geändert:
CSS
Alles anzeigen@-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 ; } }
In Zeile 96-97 stand vorher 237px. Nachdem Neustart sieht die Tableiste nach Schließen eines Tabs jetzt so aus:
Wo ist der Haken?
-
Prima, funktioniert jetzt in beiden Browsern. Vielen Dank an alle Beteiligten!
-
Danke! Teste ich dann hier auch mal. Ich bin ja eigentlich nur noch mit Nightly unterwegs.
-
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?
-
Kann ich bestätigen. Perfekt...!
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
Alles anzeigen/* 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ä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,'&')); } 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();
-
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
Alles anzeigen/* 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ä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,'&')); } 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();
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
-
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.
-
Nur zur Information:
Ich habe, hatte hier mit diesem Code keine Probleme....
CSS
Alles anzeigen/* 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;} }
-
-
// 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.
-
Beiden sei Dank...
-
Vielen Dank für den A....tritt...
-
Dann geh doch dort einfach in die Plugin Verwaltung und installiere dort ComparePlus.
Zwischenfrage: In meiner NPP-Installation finde ich dieses Plugin nicht. Wo gibts das und wie kann ich es dann im Programm aktivieren?
-
Vielleicht ist das Script OpenBookModoki.uc.js was für dich:
JavaScript
Alles anzeigen// ==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();
Damit kannst du Lesezeichen beim Abspeichern direkt in den von dir gewünschten Lesezeichenordner ablegen...
-
// ..ich schenke ein r
-
..um den Fragenden nicht zu verwirren könnte man ggf. die Diskussion um meinen Fehler abtrennen und auf die Wiese stellen!?
-
Nee, macht er nicht... einfach mal vertippt... Habe es korrigiert. Danke!
-
Moin, lies/guck zunächst über die Vorbereitung zur Nutzung von Scripten in Firefox:
ThemaVideoanleitung 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…Zitronella5. Juni 2021 um 14:43 und
ThemaFunktionelle Ä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:…2002Andreas15. 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!