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

Beiträge von milupo

  • Div. Skripte funktionieren im aktuellem Nightly nicht mehr

    • milupo
    • 12. Januar 2025 um 15:37
    Zitat von Mitleser

    Vielleicht reicht das schon aus; ungetestet! Zeile 19 ersetzen mit:

    Habe ich doch oben in meiner Version angegeben und auch in der anderen Version (mit der Konfiguration) war dieser Code drinnen. :/

  • aktiven Tab hervorheben

    • milupo
    • 12. Januar 2025 um 15:34

    Debian sollte doch aber auch eine normale Release-Version anbieten, nicht nur eine ESR-Version.

  • Div. Skripte funktionieren im aktuellem Nightly nicht mehr

    • milupo
    • 12. Januar 2025 um 14:57
    Zitat von Endor

    Das müsste das Original sein:

    Hallo Endor,

    dieses Skript müsste für Mira_Belle erledigt sein, sie hat ja das fertige Skript gefunden:

    Beitrag

    RE: Div. Skripte funktionieren im aktuellem Nightly nicht mehr

    Oh nein:!:Ich bin sooo doof:!::!:
    Bein herumexperimentieren habe ich mir newTabButtonUndoTabList.uc.js zerschossen
    und nun weiß ich nicht mehr, wie ich Zeile 40 korrigiert hatte.



    Oh man, ich sollte mal eine Pause machen!
    In #109 steht doch die Lösung!!
    Mira_Belle
    12. Januar 2025 um 14:04
  • Div. Skripte funktionieren im aktuellem Nightly nicht mehr

    • milupo
    • 12. Januar 2025 um 14:42

    Das ist aber eine andere Version, ohne Konfiguration am Anfang.

    Mit aktualisiertem Eventhandler-Code funktioniert diese Version in about:preferences.

    JavaScript
    //Author @aborix - Tab schließen + Kontextmenü auch in dem Einstellungsfenster
    //Erklärung von Sören https://www.camp-firefox.de/forum/thema/112673-userchrome-js-scripte-f%C3%BCr-den-fuchs-diskussion/?postID=1247653#post1247653
    //angepasst von @milupo Zeile 22 > 8.10.2024 ab Fx 132 > tabbrowser-tabbox statt appcontent
    
    (function() {
    
      if (!window.gBrowser)
        return;
    
      var contextMenu = document.getElementById('contentAreaContextMenu');
      var menuseparator = document.createXULElement('menuseparator');
      menuseparator.id = 'context-sep-closetab';
      contextMenu.append(menuseparator);
    
      var menuitem = document.createXULElement('menuitem');
      menuitem.id = 'context-closetab';
      menuitem.setAttribute('label', 'Tab schließen');
      //menuitem.setAttribute('oncommand', 'gBrowser.removeCurrentTab();');
      menuitem.addEventListener('click', () => {
                                  BrowserCommands.closeTabOrWindow();
                                   
      });
      contextMenu.append(menuitem);
    
      var appcontent = document.getElementById('tabbrowser-tabbox');
      appcontent.addEventListener('contextmenu', event => {
        setTimeout(() => {
          if (gContextMenu && !gContextMenu.shouldDisplay) {
            for (let string of 'back forward reload bookmarkpage'.split(' ')) {
              document.getElementById('context-' + string).removeAttribute('hidden');
            }
            document.getElementById('context-stop').setAttribute('hidden', 'true');
            const A = 'navigation sep-navigation savepage sep-paste selectall sep-viewsource viewsource viewinfo sep-bidi inspect-a11y inspect sep-closetab closetab'.split(' ');
            for (let node of contextMenu.childNodes) {
              if (A.includes(node.id.substring(8)))
                node.removeAttribute('hidden');
              else
                node.setAttribute('hidden', 'true');
            }
            contextMenu.openPopupAtScreen(event.screenX, event.screenY, true, event);
          }
        }, 50);
      });
    
    })();
    Alles anzeigen
  • Div. Skripte funktionieren im aktuellem Nightly nicht mehr

    • milupo
    • 12. Januar 2025 um 14:21
    Zitat von Mira_Belle

    Oh man, ich sollte mal eine Pause machen!
    In #109 steht doch die Lösung!!

    Nicht, dass du dich da wunderst: onpopupshowing ist in dem Skript kein Inline-Eventhandler, der hätte ersetzt werden müssen. Da hätte sich der Autor des Skriptes eigentlich an die Standardschreibweise halten müssen: onPopupshowing, hat er aber nicht, so sieht es wie ein Inline-Eventhandler aus, obwohl es keiner ist.


    2002Andreas Kannst du mal das Skript ohne Änderung einstellen? Möglicherweise wurde beim Ändern ein Fehler eingebaut. Auf jeden Fall kann ich das bestätigen. Der Witz dabei ist, ich habe hier eine andere Version, da funktioniert es nun wieder nur in about:preferences. Allerdings ist mir das wurscht. Denn der Eintrag „Tab schließen“ als Eintrag im Kontextmenü eines Tabs ist schon seit langem Standard.

  • Div. Skripte funktionieren im aktuellem Nightly nicht mehr

    • milupo
    • 12. Januar 2025 um 13:24
    Zitat von Mira_Belle

    einfach nur den Fehler doch "oncommand" zu benutzen?

    Nein, so einfach geht es eben nicht. Du musst addEventListener verwenden, nicht setAttribute. Die Parameter command und function (event) gehören zu addEventListener. Davor steht das Objekt (hier item), in den Skripten ist das meist eine Variable, die vorher mit var oder let definiert wird.

    Mit setAttribute wurde vorher oncommand als Attribut definiert (setAttribute = setze Attribut soundso). Da es keine Inline-Eventhandler mehr gibt, geht es nicht mehr diese als Attribut zu definieren.

    Also sieht es so aus: objekt.addEventListener('command', function (event) { … }); Zwischen den geschweiften Klammern steht der auszuführende Code, der leider auch oft umgebaut werden muss.

  • Aktiven Tab hervorheben aber auch die inaktiven Tabs besser trennen

    • milupo
    • 12. Januar 2025 um 12:48
    Zitat von spooner.arthur

    Wenn ich deinen Code einfüge, dann sind die Buttons trotzdem grau statt weiß.

    Grau müssten deine Menüleiste, deine Tableiste und der aktive Tab sein. Die beiden Symbole, um die es hier geht, sollten bei dir weiß sein.

  • Div. Skripte funktionieren im aktuellem Nightly nicht mehr

    • milupo
    • 12. Januar 2025 um 12:32
    Zitat von Mira_Belle

    Wie bist Du denn auf

    item.addEventListener ('command', function (event) {
    if (event.button == 0) {
    gExternalApplications.exec(this.path, this.args);
    } ,anstatt

    item.setAttribute('oncommand', function(event) {
    gExternalApplications.exec(this.path, this.args);
    }, true) gekommen?

    Du könntest schwere Fragen stellen. :)

    Was du bisher noch nicht so richtig verstanden hast: Es gibt keine Inline-Eventhandler mehr. Diese beginnen mit on- und danach den entsprechenden Befehl, also z. B. oncommand, onclick, ondblclick. Stattdessen kann jetzt nur noch die Methode addEventlistener verwendet werden, die den Eventhandler dem Skript sozusagen bekannt macht. Der Eventhandler ist dabei ohne vorgesetztes on, also nur command, click, dblclick. Die Methode addEventListener hat noch einen zweiten Parameter und das ist noch so ein Rätsel für mich. Wenn im auszuführenden Code event vorkommt, kann man offensichtlich event => verwenden. Aber dieser zweite Parameter kann auch eine Funktion sein. Und hier wird ja eine Funktion ausgeführt. Deswegen habe ich einfach function (event) genommen, in der Hoffnung, es funktioniert. Es hat funktioniert, Glück gehabt.


    Zitat von 2002Andreas

    und diesen beiden Spielen

    So lange wie sie auf einem neueren Windows noch laufen …

  • Aktiven Tab hervorheben aber auch die inaktiven Tabs besser trennen

    • milupo
    • 12. Januar 2025 um 12:19
    Zitat von spooner.arthur

    funktioniert leider nicht.

    Firefox neu gestartet?

  • Div. Skripte funktionieren im aktuellem Nightly nicht mehr

    • milupo
    • 12. Januar 2025 um 12:15
    Zitat von 2002Andreas

    Somit funktionieren 15 Skripte dank eurer Hilfe wieder einwandfrei

    Na, das ist doch was. Und Spider Solitär ist auch wieder erreichbar. ;)

  • Div. Skripte funktionieren im aktuellem Nightly nicht mehr

    • milupo
    • 12. Januar 2025 um 12:11
    Zitat von 2002Andreas

    Funktioniert hat es trotzdem.

    Ja, weil es nur das Menü betraf. Der Code für das Symbol war ja korrekt.

  • Div. Skripte funktionieren im aktuellem Nightly nicht mehr

    • milupo
    • 12. Januar 2025 um 12:06

    In Zeile 14 muss man bei type button in menu ändern. Dadurch hat man dann das Menü Start am Ende der Menüleiste. Aber: Bitte korrigiere im Skript am Ende tem.addEventListener in item.addEventlistener, sonst funktioniert der Aufruf per Menü nicht. Habe vergessen den Buchstaben „i“ zu kopieren. War ein blöder Kopierfehler.


    Zitat von Mira_Belle

    da hat milupo ein i vergessen.

    Genau. :(

    Habe es im Code-Kasten oben geändert.

  • Div. Skripte funktionieren im aktuellem Nightly nicht mehr

    • milupo
    • 12. Januar 2025 um 11:49

    2002Andreas Diese Version scheint zu klappen:

    JavaScript
    // ==UserScript==
    // @name           Thunderbird.uc.js
    // @namespace      ithinc#mozine.cn
    // @description    External Applications
    // @include        main
    // @compatibility  Firefox 3.5.x
    // @author         ithinc
    // @version        20091212.0.0.1 Initial release
    // ==/UserScript==
    
    /* :::: External Applications :::: */
    
    var gExternalApplications = {
      type: 'button', //'menu' or 'button'
      insertafter: 'urlbar-container',
    
      apps: [
        
        {name: 'Thunderbird', path: 'C:\\Program Files\\Mozilla Thunderbird\\thunderbird.exe'},
       
      ],
    
      init: function() {
        for (var i=0; i<this.apps.length; i++) {
          if (!this.apps[i].path) continue;
          if (!this.apps[i].args) this.apps[i].args = [];
    
          this.apps[i].path = this.apps[i].path.replace(/\//g, '\\');
    
          var ffdir = Cc['@mozilla.org/file/directory_service;1'].getService(Ci.nsIProperties).get('CurProcD', Ci.nsIFile).path;
          if (/^(\\)/.test(this.apps[i].path)) {
            this.apps[i].path = ffdir.substr(0,2) + this.apps[i].path;
          }
          else if (/^(\.)/.test(this.apps[i].path)) {
            this.apps[i].path = ffdir + '\\' + this.apps[i].path;
          }
        }
    
        if (this.type == 'menu') {
          var mainmenu = document.getElementById('main-menubar');
          var menu = mainmenu.appendChild(document.createXULElement('menu'));
          menu.setAttribute('label', 'Start');
          menu.setAttribute('accesskey', 'a');
    
          var menupopup = menu.appendChild(document.createXULElement('menupopup'));
          for (var i=0; i<this.apps.length; i++) {
            menupopup.appendChild(this.createMenuitem(this.apps[i]));
          }
        }
        else {
          var menubarItems = document.getElementById(this.insertafter);
          var toolbaritem = menubarItems.parentNode.insertBefore(document.createXULElement('toolbaritem'), menubarItems.nextSibling);
    	  toolbaritem.id = 'ExtAppButtons';
          toolbaritem.setAttribute("class", "chromeclass-toolbar-additional");
          toolbaritem.setAttribute("orient", "horizontal");
          for (var i=0; i<this.apps.length; i++) {
            toolbaritem.appendChild(this.createButton(this.apps[i]));
          }
        }
      },
    
      exec: function(path, 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()) {
          throw 'File Not Found: ' + path;
        }
    
        if (!file.isExecutable() || args.length==0) {
          file.launch();
        }
        else {
          var process = Cc['@mozilla.org/process/util;1'].getService(Ci.nsIProcess);
          process.init(file);
          process.run(false, args, args.length);
        }
      },
    
      createButton: function(app) {
        if (app.name == 'separator')
          return document.createXULElement('toolbarseparator');
    
        var item = document.createXULElement('toolbarbutton');
        item.setAttribute('class', 'toolbarbutton-1 chromeclass-toolbar-additional');
        item.setAttribute('label', app.name);
        item.setAttribute('image', 'moz-icon:file:///' + app.path + '?size=16');
       // item.setAttribute('oncommand', 'gExternalApplications.exec(this.path, this.args);');
       
       item.addEventListener ('command', function (event) {
    	   if (event.button == 0) {
    		   gExternalApplications.exec(this.path, this.args);
    	   }
       });
       
       // item.setAttribute('tooltiptext', app.name);
        item.path = app.path;
        item.args = app.args;
        return item;
      },
    
      createMenuitem: function(app) {
        if (app.name == 'separator')
          return document.createXULElement('menuseparator');
    
        var item = document.createXULElement('menuitem');
        item.setAttribute('class', 'menuitem-iconic');
        item.setAttribute('label', app.name);
        item.setAttribute('image', 'moz-icon:file:///' + app.path + '?size=16');
      //  item.setAttribute('oncommand', 'gExternalApplications.exec(this.path, this.args);');
      
      item.addEventListener ('command', function (event) {
    	   if (event.button == 0) {
    		   gExternalApplications.exec(this.path, this.args);
    	   }
       });
      
        item.path = app.path;
        item.args = app.args;
        return item;
      }
    };
    gExternalApplications.init();
    Alles anzeigen

    Mal noch eine Frage. Wo taucht denn der Menüeintrag auf?

  • Div. Skripte funktionieren im aktuellem Nightly nicht mehr

    • milupo
    • 12. Januar 2025 um 00:18

    Mitleser Die Inline-Eventhandler sind ja schon lange nur eine Altlast nebenher, die Variante mit addEventListener und seinem Gegenstück removeEventListener gibt es ja schon seit einer Ewigkeit.


    Zitat von BrokenHeart

    Keine Ahnung, was da im Argen liegt

    In Zeile 55 ist noch der Inline-Eventhandler onpopupshowing, auf den in Zeile 36 wohl Bezug genommen wird.

  • Div. Skripte funktionieren im aktuellem Nightly nicht mehr

    • milupo
    • 12. Januar 2025 um 00:00

    BrokenHeart Im Skript aus Beitrag #91 ist in Zeile 55 noch ein schwerer Fall von ondblclick. :) Ansonsten funktioniert das Skript wohl offenbar. Das Symbol sehe ich nicht, ist wohl bei mir nicht vorhanden.

  • Div. Skripte funktionieren im aktuellem Nightly nicht mehr

    • milupo
    • 11. Januar 2025 um 23:41

    Ach, Mensch, grisu2099. Zu spät. Aber Firefox brauchte bei mir gerade eine Ewigkeit, um die Forumsseite nach einem Neustart wieder zu laden.

  • Div. Skripte funktionieren im aktuellem Nightly nicht mehr

    • milupo
    • 11. Januar 2025 um 23:27
    Zitat von Mitleser

    Funzt das?

    Zeile 9 ist noch anzupassen. Wenn hier die Funktionen Nach oben und Nach unten im Kontextmenü erscheinen (unterstrichene Pfeilsymbole), so funktioniert mit dieser Version nur Nach unten.

  • Firefox Linux Mint, Virus eingefangen?

    • milupo
    • 11. Januar 2025 um 23:15
    Zitat von katzi

    Aber, was hat denn eine deaktivierte Hardwarebeschleunigung mit Werbe-Popup zu tun?

    Wahrscheinlich nichts. Er hat aber geschrieben, dass er das Problem im Fehlerbehebungsmodus nicht hat. Angeblich sind die Add-ons nicht schuld. Bleiben CSS, Benutzerskripte und eben die Hardwarebeschleunigung. Es geht hier nur darum, herauszufinden, ob überhaupt eine von diesen vier Kategorien am Problem schuld ist.

    Hier auf Windows würde Adwcleaner mein nächster Schritt sein. Mit welchem Programm man aber auf Linux nach Adware suchen kann, entzieht sich meiner Kenntnis.

  • Div. Skripte funktionieren im aktuellem Nightly nicht mehr

    • milupo
    • 11. Januar 2025 um 23:10
    Zitat von Mira_Belle

    Und von den Skriptnamen kann man auch nicht immer so wirklich gut auf die Funktion schließen.

    Dem kann ich mich anschließen. Leider gibt es oft keine Kommentare am Anfang eines Skripts oder sie sind veraltet. Und ich bin leider auch oft zu faul, da etwas hineinzuschreiben. Allerdings kann das auch jeder für sich machen.

    Ich habe hier sogar ein funktionierendes „Geisterskript“. Das Skript schließt rechte Tabs. Ich finde es nur nicht im chrome-Ordner. :/

  • Div. Skripte funktionieren im aktuellem Nightly nicht mehr

    • milupo
    • 11. Januar 2025 um 22:40
    Zitat von FuchsFan

    Da würde ich vorschlagen ein Unterforum zu eröffnen, in dem nur die lauffähigen Scripte eingestellt werden, alles ohne Diskussion.

    Was soll das bringen? Das hier ist sogar ein spezieller Thread für diesen speziellen Fall, dass die Eventhandler umgebaut werden müssen. Ein Unterforum ohne Diskussion? Ich fürchte, daraus wird nichts. (Fast) Jeder hat eine eigene Skriptversion und in dem Unterforum, was du willst, steht dann auch nur die eine Version, die dort eingestellt wurde. Die wirft sicher Fragen auf. Ihr kriegt offensichtlich kalte Füße, weil ich ein paar Skripts hintereinander eingestellt habe. Aber die sind nur kurz und im Prinzip sind da fast nur die gleichen Anpassungen für die Evenhandler (mit menuitem.addEventListener oder toolbaritem.addEventListener). Also habt euch nicht so.

Unterstütze uns!

Jährlich (2025)

92,9 %

92,9% (604,17 von 650 EUR)

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