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

Schrauberecke: Hier geht es um optische und funktionelle Veränderungen (ohne Themes oder Personas) von Firefox oder von Webseiten per CSS-Codes oder JavaScript.
Benutzeravatar
Boersenfeger
Senior-Mitglied
Beiträge: 50032
Registriert: So, 21. Mär 2004 13:21
Wohnort: Brunswiek anne Oker dranne

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

#991

Beitrag von Boersenfeger » Do, 19. Okt 2017 18:56

Oops, mache jetzt ja alles via userchrome.css und usercontent.css.. den Code muss ich da noch einbinden und natürlich sind da die Links... sorry... :(
Stand 20.11.2017
Mozilla/5.0 (Windows NT 6.1 Win64 x64 rv:57.0) 20100101 Firefox/57.0
Mozilla/5.0 (Windows NT 6.1 Win64 x64 rv:58.0) 20171116 Firefox/58.0b4
Mozilla/5.0 (Windows NT 6.1 Win64 x64 rv:59.0) 20171120 Firefox/59.0a1

Meine Füchse|Fehlersuche|Anleitung für Fragen im Forum|Sicherheitskonzept für Windowsnutzer

Benutzeravatar
Endor
Senior-Mitglied
Beiträge: 11643
Registriert: Fr, 20. Apr 2007 15:41
Wohnort: Irgendwo ganz weit im Süden und doch mitten in den Bergen
Kontaktdaten:

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

#992

Beitrag von Endor Themen-Starter » Do, 19. Okt 2017 19:10

Alles gut. Kein Problem. :wink:
Mfg.
Endor
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:57.0) Gecko/20100101 Firefox/57.0
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:58.0) Gecko/Firefox/58.0b1
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:59.0) Gecko/Firefox/59.0

OS: Windows 7 H. P. 64 Bit Versions Info Stand 14.11.2017
Kein Support per PN. Fragen bitte im Forum stellen!

Benutzeravatar
Büssen
Senior-Mitglied
Beiträge: 811
Registriert: Sa, 03. Jul 2004 16:00
Wohnort: Eckernförde

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

#993

Beitrag von Büssen » Fr, 20. Okt 2017 17:40

Hallo,
Endor hat geschrieben:Könnt ihr auch selber ändern wenn ihr wollt.
>> konnte die Zeit nicht abwarten - habe inzwischen die Änderungen im Wetterfuchs erfolgreich hin bekommen! :D
Gruß,
D. Büssen
Firefox 57.0. (WIN 7 + 10 64 bit)

Benutzeravatar
edvoldi
Senior-Mitglied
Beiträge: 1798
Registriert: Mo, 18. Aug 2008 13:40

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

#994

Beitrag von edvoldi » Fr, 20. Okt 2017 18:49

Hallo zusammen,
das Script ( WebScreenShotButton.uc.js ) funktioniert ja leider ab Firefox 57 nicht mehr.
Leider ist in diesem Script auch die Funktion drin Bilder "Grafik in Base64 kopieren".
Gibt es so etwas separat oder kann man das aus diesem Script heraus ziehen?

Gruß EDV Oldi
WIN10 pro & WIN10 Home Version 1709 (Build16299.19)
Thunderbird 52.4.0 / Lightning 5.4.4
Firefox 57.0. x64
Meine Erweiterungen

Benutzeravatar
Road-Runner
Senior-Mitglied
Beiträge: 26038
Registriert: So, 09. Mai 2004 19:37
Wohnort: Luxemburg

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

#995

Beitrag von Road-Runner » Fr, 20. Okt 2017 18:59

Meine Fuchskonfiguration - Firefox-Infos, Tipps & Tricks
Ich leiste keinen Support per Mail oder PN. Poste Deine Frage bitte im Forum.

Benutzeravatar
edvoldi
Senior-Mitglied
Beiträge: 1798
Registriert: Mo, 18. Aug 2008 13:40

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

#996

Beitrag von edvoldi » Fr, 20. Okt 2017 19:02

Danke, Link gespeichert.
WIN10 pro & WIN10 Home Version 1709 (Build16299.19)
Thunderbird 52.4.0 / Lightning 5.4.4
Firefox 57.0. x64
Meine Erweiterungen

Benutzeravatar
edvoldi
Senior-Mitglied
Beiträge: 1798
Registriert: Mo, 18. Aug 2008 13:40

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

#997

Beitrag von edvoldi » Sa, 21. Okt 2017 11:22

Hallo zusammen,
ich wollte gerade einmal diese Script ( ClearCacheButtonMovable.uc.js ) testen.
Leider funktioniert es nicht, weder im Firefox 56 noch im Firefox 57.
Hat einer eine Idee?

Gruß
EDV-Oldi
WIN10 pro & WIN10 Home Version 1709 (Build16299.19)
Thunderbird 52.4.0 / Lightning 5.4.4
Firefox 57.0. x64
Meine Erweiterungen

Benutzeravatar
Endor
Senior-Mitglied
Beiträge: 11643
Registriert: Fr, 20. Apr 2007 15:41
Wohnort: Irgendwo ganz weit im Süden und doch mitten in den Bergen
Kontaktdaten:

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

#998

Beitrag von Endor Themen-Starter » Sa, 21. Okt 2017 11:29

Was geht nicht, wird die Schaltfläche nicht angezeigt oder keine Funktion
oder geht es überhaupt nicht?
Mfg.
Endor
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:57.0) Gecko/20100101 Firefox/57.0
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:58.0) Gecko/Firefox/58.0b1
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:59.0) Gecko/Firefox/59.0

OS: Windows 7 H. P. 64 Bit Versions Info Stand 14.11.2017
Kein Support per PN. Fragen bitte im Forum stellen!

Benutzeravatar
2002Andreas
Moderator
Beiträge: 35226
Registriert: Fr, 04. Jul 2008 19:25
Wohnort: Niedersachsen

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

#999

Beitrag von 2002Andreas » Sa, 21. Okt 2017 11:34

Funktioniert hier in Fx57 und 58 einwandfrei.
Mit freundlichem Gruß
Andreas
Mein System    Meine Add-ons

Benutzeravatar
edvoldi
Senior-Mitglied
Beiträge: 1798
Registriert: Mo, 18. Aug 2008 13:40

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

#1000

Beitrag von edvoldi » Sa, 21. Okt 2017 11:39

Hallo Endor,
ich hatte das zu erst im Firefox 56 getestet, hier wird nichts unter "Extras" angezeigt und es gibt auch keine Schaltfläche die ich verschieben kann.
Dann habe ich es zum Spaß auch im Firefox 57 probiert und hier erschien auch keine Schaltfläche im "Firefox anpassen" Tab.
Jetzt nach einem weiteren Neustart von Firefox 57 erscheint die Schaltfläche (Symbol) rechts neben dem Suchfeld und unter Extras gibt es auch eine Auswahlmöglichkeit.
Jetzt nur die Frage wie kann ich testen ob der Cache gelöscht wird?
Gruß EDV Oldi
WIN10 pro & WIN10 Home Version 1709 (Build16299.19)
Thunderbird 52.4.0 / Lightning 5.4.4
Firefox 57.0. x64
Meine Erweiterungen

Benutzeravatar
2002Andreas
Moderator
Beiträge: 35226
Registriert: Fr, 04. Jul 2008 19:25
Wohnort: Niedersachsen

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

#1001

Beitrag von 2002Andreas » Sa, 21. Okt 2017 11:42

edvoldi hat geschrieben:
Sa, 21. Okt 2017 11:39
ob der Cache gelöscht wird?
Unter:
about:preferences#privacy > Zwischengespeicherte Webinhalte

wird dir angezeigt wie viel Speicher belegt ist. Den Button dann anklicken...die about Seite neuladen und dann erkennst du es.
Mit freundlichem Gruß
Andreas
Mein System    Meine Add-ons

Benutzeravatar
edvoldi
Senior-Mitglied
Beiträge: 1798
Registriert: Mo, 18. Aug 2008 13:40

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

#1002

Beitrag von edvoldi » Sa, 21. Okt 2017 11:44

Danke, funktioniert im Firefox 57.
WIN10 pro & WIN10 Home Version 1709 (Build16299.19)
Thunderbird 52.4.0 / Lightning 5.4.4
Firefox 57.0. x64
Meine Erweiterungen

Benutzeravatar
Son Goku
Mitglied
Beiträge: 435
Registriert: Mi, 10. Nov 2004 17:51

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

#1003

Beitrag von Son Goku » Sa, 21. Okt 2017 13:55

Hallo,
ich habe folgende Version runtergeladen
Unbenannt-2.png
damit wollte ich einige Scripte ausprobieren und bin nach folgender Anleitung vorgegangen

Anleitung in kurz form
1. In den "Firefox Installationsordner" gehört die Datei "config.js" und "userChromeJS.js"

2. In den "Firefox Installationsordner\defaults\pref" gehört die Datei "config-prefs.js"

3. In den "Profilordner\chrome" gehört die Datei "userChrome.js"
sollte der Ordner "chrome nicht vorhanden sein, einfach neu anlegen

4. sowie die Datei eures Skripts wie zb. "irgendeiname.uc.js"
Inhalt der Dateien

Code: Alles auswählen

//	userChromeJS.js
//	
//	kopieren nach	->	Firefox Installationsordner



/* ***** BEGIN LICENSE BLOCK *****
 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
 *
 * The contents of this file are subject to the Mozilla Public License Version
 * 1.1 (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 * http://www.mozilla.org/MPL/
 *
 * Software distributed under the License is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 * for the specific language governing rights and limitations under the
 * License.
 *
 * The Original Code is the userChromeJS utilities.
 *
 * The Initial Developer of the Original Code is
 * alta88 <alta88@gmail.com>
 *
 * Portions created by the Initial Developer are Copyright (C) 2014
 * the Initial Developer. All Rights Reserved.
 *
 * Contributor(s):
 *
 * Alternatively, the contents of this file may be used under the terms of
 * either the GNU General Public License Version 2 or later (the "GPL"), or
 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
 * in which case the provisions of the GPL or the LGPL are applicable instead
 * of those above. If you wish to allow use of your version of this file only
 * under the terms of either the GPL or the LGPL, and not to allow others to
 * use your version of this file under the terms of the MPL, indicate your
 * decision by deleting the provisions above and replace them with the notice
 * and other provisions required by the GPL or the LGPL. If you do not delete
 * the provisions above, a recipient may use your version of this file under
 * the terms of any one of the MPL, the GPL or the LGPL.
 *
 * ***** END LICENSE BLOCK ***** */

var EXPORTED_SYMBOLS = ["userChrome"];

/* ........ Utility functions ............................................... */

var userChrome = {
  path: null,
  dirToken: null,

  get loadOverlayDelay () {
    if (!this._loadOverlayDelay)
      this._loadOverlayDelay = 500;
    return this._loadOverlayDelay;
  },

  set loadOverlayDelay(delay) {
    this._loadOverlayDelay = delay;
  },

  get loadOverlayDelayIncr() {
    if (!this._loadOverlayDelayIncr)
      this._loadOverlayDelayIncr = 1600;
    return this._loadOverlayDelayIncr;
  },

  set loadOverlayDelayIncr(delay) {
    this._loadOverlayDelayIncr = delay;
  },

  import: function(aPath, aRelDirToken) {
    let file;
    this.path = aPath;
    this.dirToken = aRelDirToken;

    if (aRelDirToken) {
      // Relative file
      let absDir = this.getAbsoluteFile(aRelDirToken);
      if (!absDir)
        return;
      let pathSep = absDir.path.match(/[\/\\]/)[0];
      file = absDir.path + (aPath == "*" ?
          "" : pathSep + aPath.replace(/[\/\\]/g, pathSep));
    }
    else
      // Absolute file
      file = aPath;

    file = this.getFile(file);
    if (!file)
      return;
    if (file.isFile()) {
      if (/\.js$/i.test(file.leafName))
        this.loadScript(file, aRelDirToken, null);
      else if (/\.xul$/i.test(file.leafName)) {
        let xul_files = [];
        xul_files.push(file);
        this.loadOverlay(xul_files, this.dirToken, null, this.loadOverlayDelay);
//        this.loadOverlayDelay = this.loadOverlayDelay + this.loadOverlayDelayIncr;
      }
      else
        this.log("File '" + this.path +
                 "' does not have a valid .js or .xul extension.", "userChrome.import");
    }
    else if (file.isDirectory())
      this.importFolder(file);
    else
      this.log("File '" + this.path +
               "' is neither a file nor a directory.", "userChrome.import");
  },

  loadScript: function(aFile, aFolder, aRelDirToken) {
    setTimeout(function() {
      Components.classes["@mozilla.org/moz/jssubscript-loader;1"]
                .getService(Components.interfaces.mozIJSSubScriptLoader)
                .loadSubScript(userChrome.getURLSpecFromFile(aFile),
                               null, // defaults to the global object of the caller.
                               userChrome.charSet);
      // log it
      userChrome.log(aRelDirToken ? ("[" + aRelDirToken + "]/" +
          (aFolder && aFolder != "*" ? aFolder + "/" : "") + aFile.leafName) :
          aFile.path, "userChrome.loadScript");
    }, 0);
  },

  // XXX: Due to bug 330458, an overlay must finish before another can be
  // called, otherwise neither are successful.  Implementing an observer to
  // serialize is better left as a fix in the core bug.  Here, settimout values
  // are set to minimize but there is no quarantee; overlay cdata (if any)
  // needs to consider overlay completions and logging does not strictly mean
  // an overlay has completed, rather that the overlay file has been invoked.
  loadOverlay: function(aFiles, aRelDirToken, aFolder, aDelay) {
//userChrome.log(aDelay+" multiple import delay", userChrome.loadOverlay);
    // Increment multiple import delay
    this.loadOverlayDelay = this.loadOverlayDelay + this.loadOverlayDelayIncr;
    setTimeout(function() {
      if (aFiles.length > 0) {
//userChrome.log(userChrome.loadOverlayDelay+" inter folder delay", userChrome.loadOverlay);
        // log it
        userChrome.log(aRelDirToken ? ("[" + aRelDirToken + "]/" +
            (aFolder && aFolder != "*" ? aFolder + "/" : "") + aFiles[0].leafName) :
            aFiles[0].path, "userChrome.loadOverlay");
        document.loadOverlay(userChrome.getURLSpecFromFile(aFiles.shift()), null);
        setTimeout(arguments.callee, userChrome.loadOverlayDelay);
      }
    }, aDelay);
  },

  // Include all files ending in .js and .xul from passed folder
  importFolder: function(aFolder) {
    let files = aFolder.directoryEntries
                       .QueryInterface(Components.interfaces.nsISimpleEnumerator);
    let xul_files = [];

    while (files.hasMoreElements()) {
      let file = files.getNext().QueryInterface(Components.interfaces.nsIFile);
      if (/\.js$/i.test(file.leafName) && file.leafName != "userChrome.js")
        this.loadScript(file, this.path, this.dirToken);
      else if (/\.xul$/i.test(file.leafName)) {
        xul_files.push(file);
      }
    }

    if (xul_files.length > 0)
      this.loadOverlay(xul_files, this.dirToken, this.path);
  },

  getFile: function(aPath, aRelDirToken) {
      try {
        let file = Components.classes["@mozilla.org/file/local;1"]
                             .createInstance(Components.interfaces.nsIFile);
        file.initWithPath(aPath);
        // Bad file doesn't throw on initWithPath, need to test
        if (file.exists())
          return file;
        this.log("Invalid file '" + this.path + (this.dirToken ?
            ("' or file not found in directory with token '" + this.dirToken) :
            "") + "' or other access error.", "userChrome.getFile");
      }
      catch (e) {
        // Bad folder throws on initWithPath
        this.log("Invalid folder '" + this.path + (this.dirToken ?
            ("' or folder not found in directory with token '" + this.dirToken) :
            "") + "' or other access error.", "userChrome.getFile");
      }

    return null;
  },

  getAbsoluteFile: function(aRelDirToken) {
    try {
      let absDir = Components.classes["@mozilla.org/file/directory_service;1"]
                             .getService(Components.interfaces.nsIProperties)
                             .get(aRelDirToken, Components.interfaces.nsIFile);
      return absDir;
    }
    catch (e) {
      this.log("Invalid directory name token '" + this.dirToken +
               "' or directory cannot be accessed.", "userChrome.getAbsoluteFile");
      return null;
    }
  },

  getURLSpecFromFile: Components.classes["@mozilla.org/network/io-service;1"]
                                .getService(Components.interfaces.nsIIOService)
                                .getProtocolHandler("file")
                                .QueryInterface(Components.interfaces.nsIFileProtocolHandler)
                                .getURLSpecFromFile,

  /* Console logger */
  log: function(aMsg, aCaller) {
    Components.classes["@mozilla.org/consoleservice;1"]
              .getService(Components.interfaces.nsIConsoleService)
              .logStringMessage(this.date + " userChromeJS " +
                                (aCaller ? aCaller +": " : "") + aMsg);
  },

  get dateFormat() {
    if (!this._dateFormat)
      this._dateFormat = "%Y-%m-%d %H:%M:%S";
    return this._dateFormat;
  },

  set dateFormat(format) {
    this._dateFormat = format;
  },

  get date() {
    let date = new Date();
    return date.toLocaleFormat(this.dateFormat);
  },

  set charSet(val) {
    this._charSet = val;
  },

  get charSet() {
    if (!this._charSet)
      this._charSet = "UTF-8"; // use "UTF-8". defaults to ascii if null.
    return this._charSet;
  }

};

Code: Alles auswählen

// 	userChrome.js
//
// 	kopieren nach	->	Profilordner\chrome
// 	wenn Ordner "chrome" nicht vorhanden ist, einfach neu anlegen


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

Code: Alles auswählen

//	config-prefs.js
//	kopieren nach
//	Firefox Installationsordner\defaults\pref


pref("general.config.obscure_value", 0);
pref("general.config.filename", "config.js");
leider funktionieren keine Scripte, selbst das Script mit dem Profilordner geht nicht.

habe ich was falsche gemacht oder was muß ich denn noch machen ?

Benutzeravatar
Endor
Senior-Mitglied
Beiträge: 11643
Registriert: Fr, 20. Apr 2007 15:41
Wohnort: Irgendwo ganz weit im Süden und doch mitten in den Bergen
Kontaktdaten:

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

#1004

Beitrag von Endor Themen-Starter » Sa, 21. Okt 2017 14:09

Es fehlt die config.js Datei.
Lies nochmal hier:
https://github.com/Endor8/userChrome.js ... userChrome

Mfg.
Endor
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:57.0) Gecko/20100101 Firefox/57.0
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:58.0) Gecko/Firefox/58.0b1
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:59.0) Gecko/Firefox/59.0

OS: Windows 7 H. P. 64 Bit Versions Info Stand 14.11.2017
Kein Support per PN. Fragen bitte im Forum stellen!

Benutzeravatar
Son Goku
Mitglied
Beiträge: 435
Registriert: Mi, 10. Nov 2004 17:51

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

#1005

Beitrag von Son Goku » Sa, 21. Okt 2017 14:21

Hallo,
habe ich genau so gemacht wie in der Anleitung steht, habe sogar die Dateien runtergeladen und verwendet. Natülich habe ich das .txt am ende der Datei jewalls gelöscht.

aber den Profil Ordner sehe ich trotzdem nicht im Anpassungsfenster ?
Unbenannt-1.png
inhalt des Scriptes

Code: Alles auswählen

  (function () {

       if (location != 'chrome://browser/content/browser.xul') return;

       const buttonId = 'Profilordner';
       const buttonLabel = 'Profil Button';
       const buttonTooltiptext = '';
       const buttonIcon = 'url(data:image/gif;base64,R0lGODlhEAAQAOZMAP/////MAF06AJhlAJNgAP//AP/lAP/UAJViAP/JANShAJRhAP/OAJRgAOy5AMaSAP/nAMyZAP/IAP/NAOazAP/RAMmVALaAAH5TAJNfAM2aAP/dT//XOv/KAOPOkMeRAP/nhOSxAOu4AP3KAOrTkv/nrv//1c6bAKdyAP/TAP/bPdWsMr6LA7iCALqGALiEAJNeAMCMAP/gcv/eYdGdAP/TEP/mgv/2y//gg/3JAP/ila97AP/aKsWPAJFbAJZgALeBAMiVAPC9AP/rOum2AHlQAP/4zP//z//jPpNdAP/LANixNP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAEwALAAAAAAQABAAAAefgEyCg4SFhoeFDQ0LjIiCCyU5IwEBBAiXCAOEBDohFBREIg6jQgibODQKqgonDz0fPkkwDQMEMhYRERpBMUsAv8C1Mw8uLUAXKwA2EgkJDJoEGy8swAAgCZQMz0wEKigkN8wJHZQBFZrcPDsAHErllBMT6AQ1HkYVKQf6++hMGUgAhhgYSBAChH4/TBwpwLAhw35MMAiYSLFiEUcYmQQCADs=)';
       
       function buttonFunction() {
                    Services.dirsvc.get('ProfD', Ci.nsIFile).launch(); 

       }; 
                 
       var button = document.createElement('toolbarbutton');
       button.id = buttonId;
       button.setAttribute('class', 'toolbarbutton-1 chromeclass-toolbar-additional');
       button.removable = 'true';
       button.setAttribute('label', buttonLabel);
       button.setAttribute('tooltiptext', buttonTooltiptext);       
       button.style.listStyleImage = buttonIcon;
       
       button.addEventListener('click', function (event) {
          if (event.button == 0)
             buttonFunction();
       });
       
       document.getElementById('navigator-toolbox').palette.appendChild(button); 

       var toolbars = Array.slice(document.querySelectorAll('toolbar'));
       for (var i=0; i<toolbars.length; i++) {          
          var currentset = toolbars[i].getAttribute('currentset');      
          if (currentset.split(',').indexOf(button.id) >= 0) {      
             var j;
             if (i == 0) j = 1
             else j = 0;         
             toolbars[j].currentSet += ','+button.id;         
             toolbars[i].currentSet = currentset;      
          };      
       };
       
    }) ();
Unbenannt-2.png

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste