Buttons von Addons in der Navigations-Leiste

  • Hallo und guten Abend!

    Es geht um folgendes:
    Ich habe das Icon von Adblock Plus in der Navigationsleiste platziert.

    [attachment=1]Screenshot (20).png[/attachment]

    Nun ist es so, dass es mich gewaltig stört, dass der Button auch in manchen Pop-up Fenstern neben der Adresszeile zu sehen ist, da ich es für völlig ausreichend empfinde, wenn der Button im Hauptfenster von Firefox vorhanden ist.

    [attachment=0]Screenshot (21).png[/attachment]

    Daher die Frage: Ist es irgendwie machbar, dass der Button wirklich nur im Hauptfenster ist, bzw. liegt es an dem Addon, so dass man von Firefox aus da nichts ändern kann? Es ist soweit ich es überprüft habe grundsätzlich mit allen Buttons von Addons der Fall. Also wird es ja so wie ich es sehe nicht nur an Adblock Plus liegen. (Nur eine wage Annahme)
    Würde mich jedenfalls über einen Ratschlag oder eine Hilfestellung sehr freuen!

    Beste Grüße :)

  • Klicke in den Einstellungen auf Optionen und setze den Haken bei "In Add-on-Leiste anzeigen". Dann sollte der Button oben verschwunden sein.
    [attachment=0]2013-10-22_112334.jpg[/attachment]
    BTW: Solche Kosmetik wird im Unterforum "Anpassungen" behandelt. Ich werde diesen Beitrag dorthin verschieben lassen...

  • Mit einem Skript zur Erweiterung userChromeJS lässt sich das machen.

    Informationen dazu auch hier: https://github.com/ardiman/userCh…aster/README.md

    Skript:

    Code
    (function() {
    	var list = Services.wm.getEnumerator("navigator:browser");
    	list.getNext();
    	if (list.hasMoreElements()) 	
    		if(!window.opener) 
    			document.getElementById('abp-toolbarbutton').style.display='none';
    })();

    Das Skript hat eine Nebenwirkung, die allerdings nur beim Start mit mehreren Fenstern eine Rolle spielt: in diesem Fall enthält nur eines dieser Fenster den ABP-Button.

    Zum Testen ist z.B. http://popuptest.com/ gut geeignet.

  • Ja, ich habe mich ja auch kurz gefasst.

    Also:

    Zuerst die Erweiterung von der verlinkten Seite installieren und Fx neu starten.
    Dann den Profilordner öffnen, dort gibt es nun einen Ordner chrome und darin eine Datei userChrome.js.
    Diese Datei mit einem Texteditor öffnen und das Skript am Ende hinzufügen.
    Dann Fx nochmals neu starten und fertig.

    Diese Vorgangsweise ist etwas anders als die auf https://github.com/ardiman/userCh…aster/README.md beschriebene, aber im Augenblick einfacher.

    Edit: Rechtschreibfehler berichtigt.

    Einmal editiert, zuletzt von aborix (23. Oktober 2013 um 19:13)

  • Habs genauso gemacht, aber leider ohne Erfolg.

    Hab mal den Inhalt der userChrome.js kopiert, vllt. hab ich da ja auch beim einfügen was verkehrt gemacht:

  • Nehmen wir doch die andere Methode:

    Entferne das Skript wieder aus der Datei und füge statt dessen diese Zeile hinzu:

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


    Das Skript kommt nun in eine eigene Textdatei in den Ordner chrome.
    Der Name der Datei ist egal, aber mit der Endung .uc.js; also z.B. Popup.uc.js.

    Nun die Erweiterung deaktivieren, Fx neu starten, dann wieder aktivieren und nochmals Fx neu starten.

  • Naja, so schwer ist es nicht, wenn auch nicht ganz einfach. :)

    Jeder Button hat Fx-intern einen Namen, die sogenannte id.
    Den muß man zunächst herausfinden.

    Am einfachsten geht das mit den Erweiterungen Dom Inspector und Inspect Context.

    Nach deren Installation mach einen Rechtsklick auf den betreffenden Button und klick dann auf Inspect.
    Es öffnet sich ein Fenster des DOM Inspectors, aus dem die id ersichtlich ist:

    http://www7.pic-upload.de/01.02.14/uldkxk37v8bu.png

    Der ABP-Button z.B. hat also die id abp-toolbarbutton.

    Für jeden Button trägt man im Skript eine Zeile ein, die so aussieht:

    Code
    document.getElementById('Button-id').style.display='none';

    wobei anstelle von Button-id die id eingetragen wird.

    Für den ABP-Button also die bereits bekannte Zeile

    Code
    document.getElementById('abp-toolbarbutton').style.display='none';


    Die Zeilen kommen untereinander an genau diese Stelle im Skript.
    Bei mehr als einer Zeile kommt noch davor { und danach }; hinzu.

    Es sieht dann so aus:

    Code
    (function() {
       var list = Services.wm.getEnumerator("navigator:browser");
       list.getNext();
       if (list.hasMoreElements())    
          if(!window.opener) {
             document.getElementById('Button1-id').style.display='none';
    			document.getElementById('Button2-id').style.display='none';
    			document.getElementById('Button3-id').style.display='none';
    		};
    })();

    Einmal editiert, zuletzt von aborix (1. Februar 2014 um 22:24)