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. aborix

Beiträge von aborix

  • Firefox 57 - Profil-Problem mit Tabs beim Start von FF

    • aborix
    • 30. November 2017 um 14:38

    Oder:
    Öffne den Profilordner, dann gehe zwei Ebenen nach oben und du bist im Ordner 'Firefox'. Dort befindet sich die profiles.ini.

  • Firefox-Anpassungen: die Basis

    • aborix
    • 30. November 2017 um 14:31

    EffPeh:
    Im ersten Beitrag ist der Link am Ende falsch.

  • FF 32 Bit lässt sich nicht deinstallieren

    • aborix
    • 26. November 2017 um 14:56

    Im Installationsordner befindet sich ein Ordner uninstall und darin eine Datei helper.exe. Mit Doppelklick darauf lässt sich Firefox ebenfalls deinstallieren.

  • Restart Firefox Button movable ?

    • aborix
    • 26. November 2017 um 09:52
    Zitat von Spiderman-21


    Kann die Datei gefahrlos gelöscht werden ?


    Ja.

    Wenn das Test-Skript auch nicht funktioniert, teste die Skripte in einem neuen Profil.

  • Restart Firefox Button movable ?

    • aborix
    • 26. November 2017 um 09:21

    @ Spiderman-21:

    Funktioniert dieses Skript: https://www.camp-firefox.de/forum/viewtopi…054598#p1054598 ?

    Die Datei userChrome-example.css war vor sehr langer Zeit standardmäßig im Profil enthalten. Das deutet auf ein sehr altes Profil hin. Wie alt ist dein Profil?

  • Statusleiste

    • aborix
    • 23. November 2017 um 16:28
    Zitat von Speravir

    Das sollte in die Skriptliste aufgenommen werden!

    Endor hat das ebenfalls angeregt und die Aufnahme in die Sammlung ist bereits geplant.

    Zitat


    Wie wäre es mit „statusbar.uc.js“? Ich würde allerdings geänderte ID vorschlagen und zu Beginn per Kommentar auf die Möglichkeit der Beeinflussung per CSS hinweisen.

    Mein Vorschlag für die IDs ist 'bottom-toolbar' und 'bottom-toolbar-vbox'. Die Leiste ist eine Symbolleiste wie die anderen auch und hat keine speziellen Eigenschaften der früheren Statusleiste. Ein Hinweis für die Gestaltung mit CSS ist auch geplant.

  • Bestätigung "Andere Tabs schließen" ausblenden

    • aborix
    • 22. November 2017 um 21:26

    nein, dieses: browser.tabs.warnOnCloseOtherTabs auf false setzen

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

    • aborix
    • 21. November 2017 um 21:14

    zur Liste der ab Fx 57 nicht funktionierenden Skripte:

    Zitat von Boersenfeger


    Hier ist auch BacktoTop.uc.js aufgeführt...dieses Script funktioniert hier aber in 57.0 bis 59.0a1

    Bei mir auch. Bei wem funktioniert was nicht?

  • Script Datum + Uhrzeit neben Menüleiste

    • aborix
    • 20. November 2017 um 21:14
    Zitat von loshombre


    Eventuell eine, wohl wie so oft durch Zufall, sehr wichtige gewonnene Erkenntnis.
    Ich würd mal sagen, dass sollte schnellsten Kamerad aborix erfahren und ggf. ins Visier nehmen.

    Zuallererst braucht man die neuere Variante mit dem Ordner :!: :

    Zitat von aborix

    Die config.js [...] mit diesem Inhalt:

    Code
    //
    // config.js
    
    
    const Cu = Components.utils;
    
    
    try {
    
    
      Cu.import("resource://gre/modules/Services.jsm");
      Cu.import("resource://gre/modules/osfile.jsm");
    
    
      if (!Services.appinfo.inSafeMode) {
        let path = OS.Constants.Path.libDir;
        var ucjsDirPath = OS.Path.join(path, "userChromeJS");
        path = OS.Path.join(ucjsDirPath, "main.js");
        let mainFileURI = OS.Path.toFileURI(path);
        Services.scriptloader.loadSubScript(mainFileURI, this, "UTF-8");
      };
    
    
    } catch(e) {
      Cu.reportError(e);
    };
    Alles anzeigen

    [...] und es kommt ein Ordner userChromeJS hinzu.

    und außerdem :!: :

    Zitat von aborix

    Es ist jetzt möglich, importierte .js-Skripte ohne Verwendung des Skript-Caches direkt aus dem Chrome-Ordner zu laden. Änderungen sind dann ohne Neustart in einem neuen Fenster vorhanden und beim Neustart muss der Skript-Cache nicht geleert werden.
    Dazu schreibt man in die userChrome.js folgende Anweisung vor der/den Importanweisung(en):

    Code
    userChrome.ignoreCache = true;

    [...]
    Nach Änderungen in der userChrome.js hingegen ist nach wie vor ein Neustart mit Skript-Cache leeren erforderlich.

    so gemacht?

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

    • aborix
    • 20. November 2017 um 20:14
    Zitat von bugger


    Aber irgendwie funktioniert das Event "dragstart" nicht.
    Selbst bei diesem kleinen Testscript passiert nichts.

    Code
    document.addEventListener("dragstart", function( event ) {
         console.log('dragstart');
    }, false);

    Kann das jemand bestätigen, oder liegt das Problem wie üblich 60cm vor dem Monitor?

    Ja, seitdem Firefox mit mehreren Prozessen läuft, ist das so. Für den Zugriff auf Webseiten-Inhalte braucht man ein Frame Script. Damit geht's:

    Code
    function frameScript() {
      addEventListener('dragstart', function() {
        console.log('dragstart');
      });
    };
    var frameScriptURI = 'data:,(' + frameScript.toString() + ')()';
    window.messageManager.loadFrameScript(frameScriptURI, true);

    Die Sache ist nicht trivial:
    MDN - Multiprocess Firefox - Message Manager

  • Ersatz für Shortcut content?

    • aborix
    • 19. November 2017 um 12:21

    Vor e10s war content auf Browserebene das gleiche Objekt wie window auf der Inhaltsebene von Webseiten. Seit e10s kann man auf Browserebene auf dieses window nicht mehr direkt zugreifen und damit auch nicht auf die Unterobjekte wie z.B. document und damit auf die ganze Webseite nicht. content hat den Wert null. Das ist genau die Schwierigkeit, die immer dann auftritt, wenn ein userChromeJS-Skript mit e10s nicht mehr funktioniert, weil es auf den Inhalt von Seiten zugreift. (GM-Skripte betrifft das nicht, denn die operieren ohnehin nur im Inhaltsbereich.) Damit der Zugriff möglich ist, benötigt man ein sog. Frame Script, und das hat mit dem Ausgangsskript keine Variablen gemeinsam und die beiden müssen über Hin-und Hersenden von Mitteilungen und Daten miteinander kommunizieren... das Ganze ist manchmal recht mühsam. Also kein einfacher Ersatz.

  • Statusleiste

    • aborix
    • 19. November 2017 um 09:44

    Bitte. :)

  • Statusleiste

    • aborix
    • 19. November 2017 um 09:18

    Vielleicht am einfachsten so:
    Nimm dieses leicht veränderte Skript:

    Code
    (function() {
    
    
      if (location != 'chrome://browser/content/browser.xul')
        return;
    
      var tb = document.createElement('toolbar');
      tb.id = 'new-toolbar';
      tb.setAttribute('customizable', true);
      tb.setAttribute('mode', 'icons');
    
    
      var vbox = document.createElement('vbox');
      vbox.id = 'new-toolbar-vbox';
      document.getElementById('navigator-toolbox').parentNode.insertBefore(
        vbox, document.getElementById('browser-bottombox'));
      vbox.appendChild(tb);
    
    
      CustomizableUI.registerArea('new-toolbar', {legacy: true});
    
    
    })();
    Alles anzeigen

    und dann lege die Farbe in der userChrome.css fest, z.B.

    Code
    #new-toolbar-vbox {background: purple}
  • F12 Entwicklerzwerzeuge deaktivieren

    • aborix
    • 19. November 2017 um 07:41

    Mit einem userChromeJS-Skript geht es. Wenn nur F12 funktionslos werden soll, ist es einfacher, den erforderlichen Code gleich in die Konfigurationsdatei zu geben.

    Erstelle dazu eine Textdatei namens "config-prefs.js" mit folgendem Inhalt und gib sie in den Unterordner \defaults\pref des Firefox-Installationsordners:

    Code
    pref("general.config.obscure_value", 0);
    pref("general.config.filename", "config.js");

    Außerdem erstelle eine Textdatei namens "config.js" mit folgendem Inhalt und gib sie in den Installationsordner:

    Code
    //
    const Cu = Components.utils;
    
    
    try {
      Cu.import('resource://gre/modules/Services.jsm');
    
    
      let listenOpen = {
        observe: function(aSubject, aTopic, aData) {
          if (aTopic != 'domwindowopened')
            return;
          let window = aSubject;
          window.addEventListener('load', function() {
            window.setTimeout(function() {
              if (window.location == 'chrome://browser/content/browser.xul') {
                let keyF12 = window.document.getElementById('key_toggleToolboxF12');
                keyF12.setAttribute('disabled', 'true');
              };
            }, 100);
          }, {once: true});
        }
      };
      Services.ww.registerNotification(listenOpen);
    
    
    } catch(e) {
      Cu.reportError(e);
    };
    Alles anzeigen

    Jetzt neu starten und bei F12 geschieht nichts.

    Weitere Informationen zur Konfigurationsdatei gibt es hier:
    Mike Kaply - Customizing Firefox – Autoconfig Files

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

    • aborix
    • 18. November 2017 um 13:08

    C:\Users\[Benutzername]\AppData\Local\Mozilla\Firefox\Profiles\[Profilname]\startupCache

  • neuer Tab - wo in Tableiste? Inhalt?

    • aborix
    • 18. November 2017 um 08:09

    Hallo,

    zu 1.:
    In about:config setze browser.tabs.insertRelatedAfterCurrent auf false.

    zu 2.:
    Sieh dir die Erweiterung New Tab Override an.

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

    • aborix
    • 18. November 2017 um 07:55

    Außer händisch löschen gibt es noch andere Möglichkeiten:

    - mit Kommandozeile und Parameter starten,
    - Neustart-Skript,
    zu beidem siehe Skriptcache,

    - in die userChrome.js am Anfang hineinschreiben:

    Code
    userChrome.ignoreCache = true;


    siehe dazu https://www.camp-firefox.de/forum/viewtopi…053287#p1053287, letzter Abschnitt

  • Der Glückwunsch-Thread

    • aborix
    • 17. November 2017 um 09:13

    Alles Gute! :)

  • Kürzlich geschlossene Tabs in der Chronik

    • aborix
    • 16. November 2017 um 01:09

    Das war etwas knifflig, lässt sich aber doch machen. :)
    Der Eintrag ist jetzt im Tab-Kontextmenü.

    Code
    (function() {
    
    
      if (location != 'chrome://browser/content/browser.xul')
        return;
    
    
      let tabContextMenu = document.getElementById('tabContextMenu');
      let historyPopup = document.getElementById('goPopup');
      let refItem = document.getElementById('context_undoCloseTab');
    
    
      tabContextMenu.addEventListener('popupshowing', function(event) {
        if (event.target != this)
          return;
        historyPopup.style.visibility = 'collapse';
        historyPopup.showPopup();
        document.getElementById('historyUndoPopup').showPopup();
        let dblHistoryUndoMenu = document.getElementById('historyUndoMenu').cloneNode(true);
        dblHistoryUndoMenu.removeAttribute('id');
        dblHistoryUndoMenu.getElementsByTagName('menupopup')[0].removeAttribute('id');
        tabContextMenu.insertBefore(dblHistoryUndoMenu, refItem);
      });
    
    
      tabContextMenu.addEventListener('popuphiding', function(event) {
        if (event.target != this)
          return;
        tabContextMenu.removeChild(refItem.previousSibling);
        historyPopup.style.visibility = 'visible';
      });
    
    
    })();
    Alles anzeigen

    Wenn du das Chronik-Menü ausblendest, funktioniert bei display: none das Skript möglicherweise nicht. Mit visibility: collapse klappt es.
    Die Zeilen
    historyPopup.style.visibility = 'collapse';
    und
    historyPopup.style.visibility = visible';
    brauchst du dann nicht.

    Edit: Skript korrigiert

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

    • aborix
    • 16. November 2017 um 00:01

    Es dauert manchmal etwas, bis die neuen Versionen hier stehen:
    https://github.com/ardiman/userChrome.js

    Bis dahin stehen die meisten hier:
    https://github.com/Endor8/userChr…ster/Firefox-57

    externalApplications.uc.js hab ich jetzt auch nicht gefunden.
    Das ist die neueste Version für Fx 57, die ich habe:

    Code
    // ==UserScript==
    // @name           externalApplications.uc.js
    // @namespace      ithinc#mozine.cn
    // @description    External Applications
    // @include        main
    // @compatibility  Firefox 3.5.x 3.6.x 17.01
    // @author         ithinc
    // @version        20091216.1.0.0 Final release
    // @version        20091215.0.0.2 Handle toolbar apps and menu apps separately
    // @version        20091212.0.0.1 Initial release
    // ==/UserScript==
    
    
    /* :::: External Applications :::: */
    
    
    var gExternalApplications = {
      toolbar: {
      apps: [
        {name: 'Notepad++', path: 'C:\\Program Files (x86)\\Notepad++\\notepad++.exe'},
    	{name: 'Microsoft Outlook', path: 'C:\\Program Files\\Microsoft Office\\OFFICE14\\Outlook.exe'},
    	{name: 'Videolan Player', path: 'C:\\Program Files (x86)\\VideoLAN\\Vlc\\vlc.exe'},
    	{name: 'Windows Explorer', path: 'C:\\Windows\\explorer.exe'},
    	{name: 'WinMergeU', path: 'C:\\Program Files (x86)\\WinMerge-2.14.0\\WinMergeU.exe'},
    	{name: 'CarotDAV', path: 'C:\\Program Files (x86)\\CarotDAV\\CarotDAV.exe'},
    	{name: 'Pickpick', path: 'C:\\Program Files (x86)\\picpick\\picpick.exe'},
    		], 
        insertafter: 'menubar-items'  //'menubar-items' or 'home-button'
      },
    
    
      menu: {
        apps: [
          {name: 'Notepad', path: 'C:\\WINDOWS\\system32\\notepad.exe'},
          {name: 'Rechner', path: 'C:\\WINDOWS\\system32\\calc.exe'},
          {name: 'DOS', path: 'C:\\WINDOWS\\system32\\cmd.exe'},
          {name: 'separator'},
          {name: 'UltraSearch', path: 'C:\\Program Files (x86)\\UltraSearch\\UltraSearch.exe'},
          {name: 'Windows Explorer', path: 'c:\\windows\\explorer.exe'},/*x为系统盘符*/
          {name: 'Internet Explorer', path: 'C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE', args: ['%u']},//外部浏览器打开当前页,使用参数%u
        ],
    	id: 'ExternalApplicationsMenu',
        insertafter: 'menu_openAddons', //'helpMenu', 'tools-menu' oder 'browserToolsSeparator'
        label: 'Externe Anwendungen',
        accesskey: 'A'
      },
    
    
      init: function() {
        this.handleRelativePath(this.toolbar.apps);
        this.handleRelativePath(this.menu.apps);
    
    
        if (this.toolbar.apps.length > 0) {
          var refNode = document.getElementById(this.toolbar.insertafter);
          if (refNode) {
            refNode.parentNode.insertBefore(this.createToolbaritem(this.toolbar.apps), refNode.nextSibling);
          }
        }
    
    
        if (this.menu.apps.length > 0) {
          var refNode = document.getElementById(this.menu.insertafter);
          if (refNode) {
            var menu = refNode.parentNode.insertBefore(document.createElement('menu'), refNode.nextSibling);
            menu.setAttribute('id', this.menu.id);
            menu.setAttribute('label', this.menu.label);
            menu.setAttribute('accesskey', this.menu.accesskey);
            menu.appendChild(this.createMenupopup(this.menu.apps));
          }
        }
      },
    
    
      handleRelativePath: function(apps) {
        for (var i=0; i<apps.length; i++) {
          if (apps[i].path) {
            apps[i].path = apps[i].path.replace(/\//g, '\\');
    
    
            var ffdir = Cc['@mozilla.org/file/directory_service;1'].getService(Ci.nsIProperties).get('CurProcD', Ci.nsIFile).path;
            if (/^(\.)/.test(apps[i].path)) {
              apps[i].path = ffdir + '\\' + apps[i].path;
            }
            else if (/^(\\)/.test(apps[i].path)) {
              apps[i].path = ffdir.substr(0,2) + apps[i].path;
            }
          }
        }
      },
    
    
      exec: function(path, args) {
        args = args || [];
        for (var i=0; i<args.length; i++) {
          args[i] = args[i].replace(/%u/g, gBrowser.currentURI.spec);
        }
    
    
        var file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile);
        file.initWithPath(path);
        if (!file.exists()) {
          Cu.reportError('File Not Found: ' + path);
          return;
        }
    
    
        if (!file.isExecutable()) {
          file.launch();
        }
        else {
          var process = Cc['@mozilla.org/process/util;1'].createInstance(Ci.nsIProcess);
          process.init(file);
          process.run(false, args, args.length);
        }
      },
    
    
      createToolbaritem: function(apps) {
        var toolbaritem = document.createElement('toolbaritem');
        toolbaritem.id = 'ExtAppButtons';
        toolbaritem.setAttribute('class', 'chromeclass-toolbar-additional');
        toolbaritem.setAttribute('orient', 'horizontal');
    
    
        for (var i=0; i<apps.length; i++) {
          if (apps[i].name == 'separator') {
            toolbaritem.appendChild(document.createElement('toolbarseparator'));
          }
          else {
            var item = toolbaritem.appendChild(document.createElement('toolbarbutton'));
            item.setAttribute('class', 'toolbarbutton-1 chromeclass-toolbar-additional');
            item.setAttribute('label', apps[i].name);
            item.setAttribute('image', 'moz-icon:file://' + apps[i].path + '?size=16;');
            item.setAttribute('oncommand', 'gExternalApplications.exec(this.path, this.args);');
            item.setAttribute('tooltiptext', apps[i].name);
            item.setAttribute('style','margin: 0px 0px;background: none;box-shadow: none;border-color: transparent;'); //dawlen add
            item.path = apps[i].path;
            item.args = apps[i].args;
          }
        }
        return toolbaritem;
      },
    
    
      createMenupopup: function(apps) {
        var menupopup = document.createElement('menupopup');
        for (var i=0; i<apps.length; i++) {
          if (apps[i].name == 'separator') {
            menupopup.appendChild(document.createElement('menuseparator'));
          }
          else {
            var item = menupopup.appendChild(document.createElement('menuitem'));
            item.setAttribute('class', 'menuitem-iconic');
            item.setAttribute('label', apps[i].name);
            item.setAttribute('image', 'moz-icon:file://' + apps[i].path + '?size=16');
            item.setAttribute('oncommand', 'gExternalApplications.exec(this.path, this.args);');
            item.path = apps[i].path;
            item.args = apps[i].args;
          }
        }
        return menupopup;
      }
    };
    gExternalApplications.init();
    Alles anzeigen

Unterstütze uns!

Jährlich (2025)

107,3 %

107,3% (697,41 von 650 EUR)

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