Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Firefox Addon Code verstehen und abändern?
#6
(13.08.2022, 21:03)admin schrieb: Ich habe das Add-on noch nicht getestet , weil ich Chrome nutzte. Werde das aber Häute noch testen.
Wenn ich dich richtig verstehe, würde ich es so bauen. Erstmal eine Liste mit allen geöffneten Tabs. Jeder Tab sollte da eine Checkbox haben zum Löschen. Zb man könnte das 100 Checkboxen anklicken und dann mit einem close Button die auch löschen.

Dann könnte man auch noch 2 Input Felder erzeugen wo man angeben kann , schließe von bis.
In der tab liste könnte man neben der Checkbox auch noch die Zeiten reinschreiben, wann sie das letzte Mal aktiv war (also angeklickt).
Wenn die Seite schon 1 Tage nicht mehr benutzt wurde oder so könnte man das Farblich anders gestalten , oder vielleicht eine Auto close Funktion einbauen.

Vielleicht kann man die Tabs selber auch färben die schon länger auf sind

Bei Chrome kann man Add-ons selber darauf machen  so.
Add-on von irgendwo herunterladen und entpacken
Datein ändern, wie man es will .
chrome://extensions/ im Browser eingeben und da den Entwicklermodus aktivieren.
Dann kann man da die entpackte, geänderte Version hochladen.

Ob das Firefox auch kann weiß ich nicht.
Du könntest höchstens versuchen den speicher Ort der Add-ins herauszufinden und da dann die Daten ändern.
Das geht bei Chrome auch, ist erstmal nur nee sucherrei wo der Speicherort auf der Festplatte ist . Aber das kann man ergoogeln


Ich habe noch etwas rumprobiert:
Code:
'use strict';
console.log('Script starting!');
browser.browserAction.setBadgeText({text: 'U'});
browser.browserAction.onClicked.addListener(function(aTab, event) {
    console.log('clickevent starting!');
    
    async function test(){
    console.log('test funtion called!');
    
        
        let badgetext = await browser.browserAction.getBadgeText({});
        console.log('old badgetext is '+badgetext+'!');
        if((badgetext==='')||(badgetext==='U')){
            let currTab = aTab;
            browser.browserAction.setBadgeText({text: ''+currTab.index+''});
            return;            
        }
        else{
            let tabaindex=parseInt(badgetext);
            let taby=aTab
            let tabbindex=taby.index;
            
            if (tabaindex>tabbindex){
                let help=tabaindex;
                tabaindex=tabbindex;
                tabbindex=help;
            }
            
            callToDelete(tabaindex,tabbindex);
            
            
            
            
            
            browser.browserAction.setBadgeText({text:''});    
            return;
        }
    }
    
test();






    async function callToDelete(startIndex, endIndex)
    {
        console.log('Inside the calltodelete function!');
        let chosenTabsIndexes = new Array();
        let allTabs = await browser.tabs.query({});
        
        
        for (let i = startIndex+1; i <= endIndex-1; i++) {
            chosenTabsIndexes.push(allTabs[i].id);
            
        }
        
        let removing = browser.tabs.remove(chosenTabsIndexes);
        removing.then(console.log('WIN!'),console.log('ERROR!'));
        
    }


});


Ich glaube, mittlerweile funktioniert mein Code sogar, er shceint mir wirklich genau die Tabs zwischen 2 Zieltabs zu schließen! :O

Ob das nun wirklich auch funktioniert bei großen Tabmengen, also wenn ich Tab 347 bis 863 schließen will, ob er da nicht durchdreht und Unsinn macht, weiß ich nicht.

Aber zumindest wenn ich mal so 2-3 Zwischentabs shcließen lasse, da funktioniert er einwandfrei bisher.

Jetzt braucht es Feldttests.

Was ich auch rausfand, was meine Hauptfehler waren:
1. blabla.getCurrent() war unddefined wie ich anch zig console.log Tests rausfand.
Nach googeln ist es nun so dass dem clickeventhandler automatisch eine referenz auf den aktuellen tab übergeben wird die, warum auch immer, in der aTab variable gespeichert wird (ich habe keine ahnung warum man das function(aTab,event) so schreibt).
tatsache ist aber dass ich nun überall wo ich mit getCurrent() den aktuellen tab holen wollte, nun einfahc aTab hinschreibe und es läuft :-)

2. waren noch so ein paar kleinere Schönheitsfehler drin wie fehlende Klammern, fehlende Anführungszeichen und sowas.

Aktuell wie gesagt, scheint es mal zu funktionieren wenn ich dmait 3-4 tabs auf einmal schließe.
jetzt müssen feldtests gemahct werden ob es auch noch läuft wenn wir von hunderten tabs reden :-)


PS: Ich muss mal noch rausfinden wie man das offiziell hochlädt als "permanentes" addon.
derzeit, auch aus testgründen, habe ich es nur über das about:debugging menü als temporären tab ausprobiert.

Aber falls es laufen sollte, will ich es ja dann als offizielles Addon dauerhaft zur Verfügung haben :-)
Zitieren


Nachrichten in diesem Thema
RE: Firefox Addon Code verstehen und abändern? - von bernd - 14.08.2022, 11:49

Gehe zu:


Benutzer, die gerade dieses Thema anschauen:
2 Gast/Gäste