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

Beiträge von Endor

  • TabMixPlus kleiner Ersatz

    • Endor
    • 23. November 2017 um 10:27

    Bezeichnung wird immer die Originale sein.
    Also so wie von mir oben geschrieben.
    Mfg.
    Endor

  • TLS-Handshake mit camp-firefox.de wird durchgeführt

    • Endor
    • 21. November 2017 um 22:14

    War hier eben auch so. Hat recht lange gerödelt... :)
    aber im Moment geht es wieder normal.
    Mfg.
    Endor

  • uBlock Origin 1.14.19b8 nicht installierbar

    • Endor
    • 21. November 2017 um 22:07

    Fox2Fox
    Du weist doch, die Versionen von der Github Seite sind nicht signiert, daher keine Installation
    in eine Finale Firefox Version möglich.
    Obige Version gibt es hier signiert:
    https://addons.mozilla.org/de/firefox/add…n/versions/beta
    Mfg.
    Endor

  • TabMixPlus kleiner Ersatz

    • Endor
    • 21. November 2017 um 22:01

    Die genaue Bezeichnung ist:
    middle-click-undo-close-tab.uc.js

    Das Script ist aber nicht von mir selbst. Wir haben nur diese aktualisierte
    Version im Internet beim eigentlichen Autor gefunden.
    Eine ältere Version davon haben wir ja schon bei Github und die wird demnächst
    von Mithrandir aktualisiert.
    Mfg.
    Endor

  • FF57* Neustart/Restart AddOn

    • Endor
    • 21. November 2017 um 21:56

    EffPeh
    Ich war mal so frei und hab mich auch bedient, das Script für den Hamburger ist prima.
    Darf ich das eventuell auch für die Sammlung bei Github weiter geben?

    Mfg.
    Endor

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • Endor
    • 21. November 2017 um 21:48

    Ob alle Scripte aus der Liste wieder funktionieren werden kann man im MOment noch nicht sagen.
    Die Liste wurde gerade aktualisiert, da BackToTop.uc.js ja einwandfrei funktioniert
    habe ich es aus der LIste entfernt.
    Mfg.
    Endor

  • Altes Suchfeld

    • Endor
    • 21. November 2017 um 18:26

    Das Script fügt in Fiefox 57 nur oben an Stelle der Lupe das Favicon der Suchmaschine ein.
    Sonst bleibt alles so wie es jetzt ist.
    Hier das Script:

    CSS
    // ==UserScript==
    // @name           searchEngineIcon.uc.js
    // @namespace      http://space.geocities.yahoo.co.jp/gl/alice0775
    // @description    replace the magnifying glass with the search engine's icon
    // @include        main
    // @compatibility  Firefox 38
    // @author         Alice0775
    // @version        2017/11/17 02:00 Fx57
    // @version        2015/09/08 02:00 Bug 827546
    // ==/UserScript==
    var searchengineicon = {
    
    
      init: function() {
        this.toggleImage();
    
    
        Services.obs.addObserver(this, "browser-search-engine-modified");
        window.addEventListener('unload', this, false);
      },
    
    
      uninit: function(){
        Services.obs.removeObserver(this, "browser-search-engine-modified");
        window.removeEventListener('unload', this, false);
      },
    
      toggleImage: function() {
          var searchbar = window.document.getElementById("searchbar");
          var searchbutton = window.document.getAnonymousElementByAttribute(searchbar, "class", "searchbar-search-icon");
          var uri = Services.search.currentEngine.iconURI.spec;
          //var icon = PlacesUtils.getImageURLForResolution(window, uri);
          searchbutton.setAttribute("style", "list-style-image: url('"+ uri +"') !important; -moz-image-region: auto !important; width: 16px !important; padding: 2px 0 !important;");
      },
    
    
      observe(aEngine, aTopic, aVerb) {
        if (aTopic == "browser-search-engine-modified") {
          aEngine.QueryInterface(Components.interfaces.nsISearchEngine);
          switch (aVerb) {
          case "engine-current":
            this.toggleImage();
          case "engine-default":
            // Not relevant
            break;
          }
        }
      },
    
    
      handleEvent: function(event){
        switch (event.type) {
          case 'unload':
            this.uninit();
            break;
        }
      }
    }
    
    
    searchengineicon.init();
    Alles anzeigen

    Mfg.
    Endor

  • Altes Suchfeld

    • Endor
    • 21. November 2017 um 17:38

    andreas
    das wird mit einem Script gemacht. :wink:
    Bei interesse schieb ich mal...
    Mfg.
    Endor

  • ABP Handhabung Filter hinzufügen

    • Endor
    • 20. November 2017 um 19:49

    Auf welcher Seite kommt die Werbung bei uBlock immer wieder?
    Zu ABP verwende ich nicht, daher kann ich dazu nichts sagen.
    Mfg.
    Endor

  • Script Datum + Uhrzeit neben Menüleiste

    • Endor
    • 20. November 2017 um 19:14

    Ja der Text oben wird durch aborix letzt Lösung zu Verwendung
    von Scripten automatisch erzeugt. Es wird wenn nicht vorhanden
    der chrome Ordner und die Datei userchrome.js automatisch erstellt,
    mit obigen Inhalt.
    Die loader Zeile muss man aber noch selber einfügen.
    Mfg.
    Endor

  • In memoriam

    • Endor
    • 20. November 2017 um 14:13

    Sehr sehr schade.
    Eine sehr sympatische Frau.
    R.I.P.
    Mfg.
    Endor

  • Script viewsourcemodoki,uc.is funktioniert nicht

    • Endor
    • 20. November 2017 um 11:59

    Ich schließe mich den Ausführungen meines Meisters voll und ganz an.
    Speziell auch was 2002Andreas betrifft.
    Ohne seine fantastische Hilfe wären wir aufgeschmissen.
    Mfg.
    Endor

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • Endor
    • 20. November 2017 um 11:38

    Da mir jemand die Tabelle total durcheinander gebracht hat,
    musste ich sie kurzzeitig sperren. Nun ist sie wieder offen.
    Wenn ihr etwas eintragt, dann bitte so, dass nicht wieder alles über den Haufen geworfen wird.
    Danke!
    Mfg.
    Endor

  • Script viewsourcemodoki,uc.is funktioniert nicht

    • Endor
    • 20. November 2017 um 09:25

    Ja das Script geht seit Firefox 57 nicht mehr.
    Müsste angepasst- bzw. entsprechend geändert werden.
    Bloß die Scripte von Alice sind sehr komplex da wird es schwer das
    zu reparieren. Für mich leider unmöglich.
    Mfg.
    Endor

  • addonlister.uc.js und Tampermonkey-Skripte

    • Endor
    • 19. November 2017 um 15:07

    Mithrandir
    Greasymonkey 4.0 kannst Du im Moment ruhig vergessen.
    Habe es eben getestet, die schreiben ja selber Violentmonkey oder Tampermonkey,
    beide bieten bessere Unterstützung für vorhandene Scripte als Greasymonkey.
    Quelle:
    https://www.greasespot.net/2017/09/grease…-for-users.html
    Mfg.
    Endor

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • Endor
    • 19. November 2017 um 14:41

    Klar gerne:

    HTML
    // ==UserScript==
    // @name           AddOnLister.uc.js
    // @compatibility  Firefox 36.*, 37.*
    // @include        main
    // @version        1.0.20150331
    // ==/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:\\Addonlister\\Firefox57\\",
    	//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 :		'C:\\Program Files (x86)\\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]</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 geringf&uuml;gig angepasst.</p>',
    								'userchromejs':'<p id="fxcuclisteintro">Durch die Erweiterung userChromeJS eingebundene Skripte erg&auml;nzen den Firefox um diverse Funktionen.</p>'
    								},
    			'tpladdongrp_list_intro':{
    								'default':'<ul>',
    								'userchromejs':'<ul id="fxcucliste">'
    								},
    			'tpladdon':'<li class="%%class%%"><a href="%%homepageURL%%" rel="nofollow" class="extlink">%%name%%</a> %%version%%: %%description%%%%disabled%%</li>\n',
    			'tpladdon_without_url':'<li class="%%class%%">%%name%% %%version%%: %%description%%%%disabled%%</li>\n',
    			'activeclass':'addonactive',
    			'inactiveclass':'addoninactive',
    			'disabledtext':' <small>[deaktiviert]</small>',
    			'tpladdongrp_list_outro':'</ul>\n',
    			'tpladdongrp_outro':'</div>\n\n',
    			'outro':''
    			}
    	},
    // ----- Ende Expertenkonfiguration
    
    
    	MYSTOR: {},
    	FILEUTILS: Cu.import("resource://gre/modules/FileUtils.jsm").FileUtils,
    
    
    	init: function() {
    		// legt verschiebbaren Button und Menü unter Extras an
    		// Button
    		if (location != "chrome://browser/content/browser.xul") 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ü
    		this.createME("menu_ToolsPopup","menu_openAddons",'\
    		<menu id="menu_ucjsAddonLister" accesskey="L" label="AddonLister" class="menu-iconic" style="list-style-image: url(' + ADONLI.ICON_URL + ')">\
    			<menupopup id="menu_ucjsAddonLister-popup">\
    				<menu id="menu_ucjsAddonLister-bbcode" accesskey="B" label="BBCODE" class="menu-iconic">\
    					<menupopup id="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"/>\
    						<menuitem id="menu_ucjsAddonLister_browser-bbcode" class="menAddonLister_item" oncommand="ADONLI.launch(1,\'bbcode\')" accesskey="A" label="Liste erstellen und im Browser anzeigen"/>\
    						<menuitem id="menu_ucjsAddonLister_write-bbcode" class="menAddonLister_item" oncommand="ADONLI.launch(2,\'bbcode\')" accesskey="o" label="Liste erstellen ohne Anzeige"/>\
    					</menupopup>\
    				</menu>\
    				<menu id="menu_ucjsAddonLister-html" accesskey="H" label="HTML" class="menu-iconic">\
    					<menupopup id="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"/>\
    						<menuitem id="menu_ucjsAddonLister_browser-html" class="menAddonLister_item" oncommand="ADONLI.launch(1,\'html\')" accesskey="A" label="Liste erstellen und im Browser anzeigen"/>\
    						<menuitem id="menu_ucjsAddonLister_write-html" class="menAddonLister_item" oncommand="ADONLI.launch(2,\'html\')" accesskey="o" label="Liste erstellen ohne Anzeige"/>\
    					</menupopup>\
    				</menu>\
    				<menu id="menu_ucjsAddonLister-custom" accesskey="C" label="Custom" class="menu-iconic">\
    					<menupopup id="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"/>\
    						<menuitem id="menu_ucjsAddonLister_browser-custom" class="menAddonLister_item" oncommand="ADONLI.launch(1,\'custom\')" accesskey="A" label="Liste erstellen und im Browser anzeigen"/>\
    						<menuitem id="menu_ucjsAddonLister_write-custom" class="menAddonLister_item" oncommand="ADONLI.launch(2,\'custom\')" accesskey="o" label="Liste erstellen ohne Anzeige"/>\
    					</menupopup>\
    				</menu>\
    				<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"/>\
    				<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"/>\
    				<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"/>\
    			</menupopup>\
    		</menu>'
    		);
    	},
    
    
    	createME: function (zId,zPos,sXml) {
    		var range = document.createRange();
    		var mytarget = document.getElementById(zPos);
    		range.selectNodeContents(document.getElementById(zId));
    		range.collapse(false);
    		mytarget.parentNode.insertBefore(range.createContextualFragment(sXml.replace(/\n|\t/g, '')), mytarget.nextSibling);
    		range.detach();
    	},
    
    
    	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, function(addonlist) {
    			Addons = addonlist;
    		});
    		var thread = Cc['@mozilla.org/thread-manager;1'].getService().mainThread;
    		while (Addons === void(0)) {
    			thread.processNextEvent(true);
    		}
    		// Schleife ueber Addons
    		for (i = 0; i < Addons.length; i++) {
    			iAo = Addons[i];
    			added = false;
    			storedItems = this.MYSTOR[iAo.type].length;
    			// nächste Aktionen nur, wenn Addon *nicht* in BLACKLIST steht
    			if (this.BLACKLIST.indexOf(iAo.name) === -1) {
    				// Ablage gleich sortiert vornehmen
    				for (j = 0; j < storedItems; j++) {
    					if (iAo.name.toLowerCase() < this.MYSTOR[iAo.type][j].name.toLowerCase()) {
    						this.MYSTOR[iAo.type].splice(j,0,{ 'name': iAo.name, 'version': iAo.version, 'active': iAo.isActive, 'homepage': iAo.homepageURL});
    						added = true;
    						break;
    					}
    				}
    				if (!added) this.MYSTOR[iAo.type].push({ 'name': iAo.name, 'version': iAo.version, 'active': iAo.isActive, 'homepage': iAo.homepageURL});
    			}
    		}
    	},
    
    
    	getScripts: function() {
    		// speichert ggf. im Chrome-Ordner vorhandene uc.js und uc.xul-Dateien im JSON-Object
    		var hp, j, storedItems, added;
    		// Suchmuster, also die Dateierweiterungen uc.js und uc.xul
    		let extjs = /\.uc\.js$/i;
    		let extxul = /\.uc\.xul$/i;
    		let aFolder = Cc["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("UChrm", Components.interfaces.nsIFile);
    		// files mit Eintraegen im Chrome-Ordner befuellen
    		let files = aFolder.directoryEntries.QueryInterface(Ci.nsISimpleEnumerator);
    		// Ordner bzw. Dateien durchlaufen und kontrollieren, ob gesuchte Dateien dabei sind
    		while (files.hasMoreElements()) {
    			let file = files.getNext().QueryInterface(Ci.nsIFile);
    			// keine gewuenschte Datei, deshalb continue
    			if ((!extjs.test(file.leafName) && !extxul.test(file.leafName)) || this.BLACKLIST.indexOf(file.leafName) !== -1) continue;
    			// uc.js bzw. uc.xul gefunden, die nicht in der Blacklist stehen -> Ablage sortiert (unter Linux erforderlich) im JSON vornehmen
    			hp = this.githubLink(file.leafName);
    			added = false;
    			storedItems = this.MYSTOR.userchromejs.length;
    			for (j = 0; j < storedItems; j++) {
    				if (file.leafName.toLowerCase() < this.MYSTOR.userchromejs[j].name.toLowerCase()) {
    					this.MYSTOR.userchromejs.splice(j,0,{'name': file.leafName, 'version': undefined, 'active': true, 'description': undefined, 'homepage': hp});
    					added = true;
    					break;
    				}
    			}
    			if (!added) this.MYSTOR.userchromejs.push({'name': file.leafName, 'version': undefined, 'active': true, 'description': undefined, 'homepage': hp});
    		}
    	},
    
    
    	githubLink: function(sName) {
    		// übergibt für gegebenen Skriptnamen den Link zu github
    		// früher Ausstieg, da Skript nicht verlinkt werden soll
    		if (this.GITHUBBLACKLIST.indexOf(sName) !== -1 || this.GITHUBBLACKLIST.indexOf("*") !== -1) return null;
    		sName = sName.toLowerCase();
    		/* Das folgende Array enthaelt regulaere Ausdruecke, um ungueltige Zeichenfolgen entfernen:
    		/Datei-Erweiterungen am Ende/, /"ucjs_" am Anfang/, /"_"gefolgtVonZahlUndDanachBeliebigenZeichen/
    		/ "_fx"gefolgtVonZahl(en)/, /"-" oder "+" oder "."/, /"_v"gefolgtVonZahlen
    		*/
    		var regs = [/\.uc\.js$/,/\.uc\.xul$/,/^ucjs_/,/_\d.+/,/_fx\d+/,/[-+\.]/g,/_v\d+/];
    		for (var i = 0; i < regs.length; i++) {
    			sName = sName.replace(regs[i],"");
    		}
    		return "https://github.com/ardiman/userChrome.js/tree/master/" + sName;
    	},
    
    
    	writeAddons: function(file,format){
    		var a, t, c, n, d, atype, aout, thisaddon;
    		var output = "";
    		var addontpl = "";
    		var addontplwithouturl = "";
    		Cu.import("resource://gre/modules/osfile.jsm");
    
    
    		addontpl = this.MYTPLS[format].tpladdon;
    		addontplwithouturl = this.MYTPLS[format].tpladdon_without_url;
    		output += this.MYTPLS[format].intro;
    
    
    		if (this.SHOWDATE) output +=  this.MYTPLS[format].tpllastupd.replace(/%%lastupd%%/g,this.MYSTOR.lastupd)+"\n";
    		if (this.SHOWUSERAGENT) output +=  this.MYTPLS[format].tpluseragent.replace(/%%useragent%%/g,this.MYSTOR.useragent)+"\n";
    
    
    		for (t = 0; t < this.WHICHTYPES.length; t++) {
    			atype = this.WHICHTYPES[t];
    			c = this.MYSTOR[atype].length;
    			n = 0;
    			d = 0;
    			output += this.MYTPLS[format].tpladdongrp_title[atype].replace(/%%count%%/g,c)+"\n";
    			if (this.MYTPLS[format].tpladdongrp_intro[atype] == undefined) {
    				output += this.MYTPLS[format].tpladdongrp_intro.default + (this.MYTPLS[format].tpladdongrp_intro.default.length > 0 ? "\n" : "");
    			} else {
    				output += this.MYTPLS[format].tpladdongrp_intro[atype] + (this.MYTPLS[format].tpladdongrp_intro[atype].length > 0 ? "\n" : "");
    			}
    			if (this.MYTPLS[format].tpladdongrp_list_intro[atype] == undefined) {
    				output += this.MYTPLS[format].tpladdongrp_list_intro.default+"\n";
    			} else {
    				output += this.MYTPLS[format].tpladdongrp_list_intro[atype]+"\n";
    			}
    			for (a = 0; a < c; a++) {
    				thisaddon =  this.MYSTOR[atype][a];
    				// console.log(atype + " " + thisaddon.name + " " + thisaddon.active);
    				if (thisaddon.homepage == undefined) {
    					aout = addontplwithouturl;
    				} else {
    					aout = addontpl;
    					aout = aout.replace(/%%homepageURL%%/g,thisaddon.homepage.replace(/&(?!amp;)/g,'&amp;'));
    				}
    				aout = aout.replace(/%%name%%/g,thisaddon.name);
    				if (thisaddon.version == undefined) {
    					if (thisaddon.description != undefined) {
    						aout = aout.replace(/ %%version%%: /g,": ");
    					} else {
    						aout = aout.replace(/ %%version%%: /g,"");
    					}
    				}
    				aout = aout.replace(/%%version%%/g,thisaddon.version);
    				if (thisaddon.description != undefined) {
    					aout = aout.replace(/%%description%%/g,thisaddon.description);
    				} else {
    					aout = aout.replace(/%%description%%/g,"");
    				}
    				if (thisaddon.active !== true) {
    					aout = aout.replace(/%%class%%/g,this.MYTPLS[format].inactiveclass);
    					aout = aout.replace(/%%disabled%%/g,this.MYTPLS[format].disabledtext);
    					d++;
    				} else {
    					aout = aout.replace(/%%class%%/g,this.MYTPLS[format].activeclass);
    					aout = aout.replace(/%%disabled%%/g,"");
    					n++;
    				}
    				output += aout;
    			}
    			output = output.replace(/%%countactive%%/g,n).replace(/%%countinactive%%/g,d);
    			output += this.MYTPLS[format].tpladdongrp_list_outro;
    			output += this.MYTPLS[format].tpladdongrp_outro;
    		}
    		output += this.MYTPLS[format].outro+"\n";
    		let encoder = new TextEncoder();
    		let myarray = encoder.encode(output);
    		let promise = OS.File.writeAtomic(file, myarray);
    		return output;
    	},
    
    
    	showAddons: function(e,RanPath,OpenPath,format,myoutput) {
    		// zeigt das EXPORTFILE im Editor oder im Browser (Mittelklick) an
    		switch (e) {
    			case 0:
    				var file = new this.FILEUTILS.File(RanPath);
    				var proc = Cc["@mozilla.org/process/util;1"].createInstance(Components.interfaces.nsIProcess);
    				var args = [OpenPath];
    				// falls der im Konfigurationsabschnitt definierte Editor nicht gefunden wird, auf Einstellung in about:config ausweichen:
    				if (!this.fileExists(RanPath)) {
    					console.log("AddonLister meldet: Editor nicht gefunden, ausweichen auf about:config.");
    					var pref = Cc["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
    					RanPath = pref.getCharPref("view_source.editor.path");
    					file = new this.FILEUTILS.File(RanPath);
    				}
    				proc.init(file);
    				proc.run(false, args, args.length);
    				break;
    			case 1:
    				if (this.MYTPLS[format].opendatauri) {
    					var datastring = myoutput.replace(/\n/g,"%0A").replace(/#/g,"%23");
    					getBrowser().selectedTab = getBrowser().addTab('data:text/plain;charset=utf-8,' + datastring);
    					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.");
    					getBrowser().selectedTab = getBrowser().addTab(OpenPath);
    				}
    				break;
    			default:
    				XULBrowserWindow.statusTextField.label = "Export nach  »"+ OpenPath + "« ist erfolgt.";
    				break;
    		}
    	}
    
    
    };
    
    
    ADONLI.init();
    Alles anzeigen

    In Zeile 16 noch den Pfad zum Speicherort anpassen.
    Mfg.
    Endor

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • Endor
    • 19. November 2017 um 13:15

    Also das SCript AddonLister.uc.js funktioniert hier bis auf die Greasemonkey Scripte einwandfrei.
    Da ich ja zur Zeit Tampermonkey verwende, kann er die auch nicht auslesen.
    Mfg.
    Endor

  • Doppelklick = neuer Tab

    • Endor
    • 18. November 2017 um 17:36

    Dazu hätte ich was bitte testen:

    Code
    // ==UserScript==
    // @name           middle-click "Undo Close Tab"
    // @description    Kürzlich geschlossenen Tab mit Mittelklick wieder öffnen
    // @version        1.1
    // @include        main
    // @compatibility  Firefox ESR31.3, 34.0.5, 56.*
    // @author         oflow
    // @namespace      https://oflow.me/archives/265
    // @note           Firefox 31.3, 34.0.5 neuere nicht getestet
    // @note           remove arguments.callee
    // @note           mTabContainer -> tabContainer
    // ==/UserScript==
    
    
    (function() {
        var ucjsUndoCloseTab = function(e) {
            // Nur mit Mittelkick
            if (e.button != 1) {
                return;
            }
            // Klick auf Tab-Leiste und die Neuer Tab Schaltflächen
            if (e.target.localName != 'tabs' && e.target.localName != 'toolbarbutton') {
                return;
            }
            undoCloseTab(0);
            e.preventDefault();
            e.stopPropagation();
        }
        // Schaltfläche Neuer Tab
        document.getElementById('new-tab-button').onclick = ucjsUndoCloseTab;
        // Tab-Leiste
        gBrowser.tabContainer.addEventListener('click', ucjsUndoCloseTab, true);
        window.addEventListener('unload', function uninit() {
            gBrowser.tabContainer.removeEventListener('click', ucjsUndoCloseTab, true);
            window.removeEventListener('unload', uninit, false);
        }, false);
    })();
    Alles anzeigen

    Mfg.
    Endor

  • In memoriam

    • Endor
    • 18. November 2017 um 14:42

    AC/DC-Gitarrist Malcolm Young ist tot
    http://www.spiegel.de/kultur/musik/a…-a-1178792.html
    R.I.P.
    Mfg.
    Endor

  • Script Datum + Uhrzeit neben Menüleiste

    • Endor
    • 17. November 2017 um 19:26

    in die userChrome.js kommt eigentlich nur der Einzeiler zum Laden der Scripte.
    Sämtliche Scripte werden jedes in eine eigene Datei mit der Endung uc.js gespeichert.
    Also zbs. Mousehover.uc.js usw.
    Der Einzeiler sieht so aus:

    Code
    userChrome.import("*", "UChrm");

    Mfg.
    Endor

Unterstütze uns!

Jährlich (2025)

105,8 %

105,8% (687,41 von 650 EUR)

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