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

Beiträge von BrokenHeart

  • Quicklink-Button

    • BrokenHeart
    • 29. November 2022 um 15:24
    Zitat von 2002Andreas

    Für mich pers. war das alte Skript besser, weil ich mir unterschiedliche Seiten eintragen konnte.

    Somit öffnen sich bei Linksklick eben andere als beim Rechtsklick.

    Im Array kann man jetzt für jeden Link angeben, mit welcher Maustaste er geöffnet werden soll:

    key: 0 = linke Maustatste -> gleiches Fenster

    key: 1 = mittlere Maustaste -> gleiches Fenster (zusätzliche Links)

    key: 2 = rechte Maustatste -> neues Fenster

    (Die Weblinks müssen nicht unbedingt nach Maustaste sortiert werden).

    Edit: Kleineres Update (30.112022): Mittlere Maustaste hinzugefügt...

    JavaScript
    (function() {
    
        if (!window.gBrowser){
            return;
        }
        
        // key: 0 = linke Maustatste      -> gleiches Fenster
        // key: 1 = mittlere Maustaste    -> gleiches Fenster (zusätzliche Links)
        // key: 2 = rechte Maustatste     -> neues Fenster
        const quickLinks =
        [
            {link: 'https://www.tagesschau.de/', key: 0 },
            {link: 'https://www.zdf.de/', key: 0 },
            {link: 'https://www.welt.de/', key: 0 },
            
            {link: 'https://www.br24.de/', key: 1 },
            {link: 'https://www.n-tv.de/', key: 1 },
            {link: 'https://www.der-postillon.com/', key: 1 },
            
            {link: 'https://www.heise.de/', key: 2 },
            {link: 'https://www.spiegel.de/', key: 2},
            {link: 'https://www.golem.de/', key: 2},
        ];
    
        try {
           CustomizableUI.createWidget({
              id: 'link-button',
              type: 'custom',
              defaultArea: CustomizableUI.AREA_NAVBAR,
              onBuild: function(aDocument) {         
                var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
                var props = {
                    id: 'link-button',
                    class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                    removable: 'true',
                    label: 'Quicklink',
                    accesskey: '',
                    tooltiptext: 'Quicklink:\nForum - camp-firefox.de',
                    style: 'list-style-image:                 url(data:image/png;base64,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)',
                 };            
                 for (var p in props)
                    toolbaritem.setAttribute(p, props[p]);            
                 return toolbaritem; 
              }      
           });
        } catch(e) { };
    
    
        document.getElementById('link-button').addEventListener( 'click', function(event) {
      
            let linkCaller=null;
            let timeout=0;
                
            if (event.button == 0 || event.button == 1)  {
                linkCaller = event.target;
            }
            else if (event.button == 2) {
                event.preventDefault();
                linkCaller = OpenBrowserWindow();    
                timeout=500;
            }
            else
                return;
    
            setTimeout(function() {    
                let bFirstTabNewWindow=true;
                quickLinks.forEach((weblink) => {
                    if( event.button == 2 )
                    {
                        if( weblink.key == 2 )
                        {
                            if(bFirstTabNewWindow)
                            {
                                bFirstTabNewWindow = false;
                                linkCaller.ownerGlobal.openWebLinkIn(weblink.link,"current");
                            }
                            else
                            {
                                linkCaller.ownerGlobal.openWebLinkIn(weblink.link,"tab");
                            }
                        }
                    }
                    else if( (event.button == 0 && weblink.key == 0) ||
                             (event.button == 1 && weblink.key == 1 )   )
                    {
                        linkCaller.ownerGlobal.openWebLinkIn(weblink.link,"tab");
                    }
                });
            }, timeout);        
        }, true);
    }) ();
    Alles anzeigen
    Zitat von 2002Andreas

    PS:

    Auf jeden Fall möchte ich mich hier mal ganz herzlich bedanken für die viele Zeit und Mühe, die du und auch aborix in dieses Skript investiert habt :thumbup:

    Gerne! Das macht ja auch "bis zu einem gewissen Punkt" Spaß :) . Das kennst du doch auch 2002Andreas ;) .

    Außerdem habe ich an diesem Skript wieder viel für meine Firefox- && Javascript-Kenntnisse getan...

  • Quicklink-Button

    • BrokenHeart
    • 29. November 2022 um 13:56

    Ich habe mal alle Änderungen an meinem Skript aus #96 , welche hier im weiteren Verlauf diskutiert wurden, in ein sauberes Skript mit eigenem Icon übertragen. Außerdem wird jetzt ein Array verwendet und man muss die Links nur einmal dort eintragen.

    Der notwendige 'Timeout' von 500ms in Zeile 50 beim Öffnen eines neuen Fensters ist unabhängig von der Zahl der zu öffnenden Tabs (na immerhin) und bei Problemen diesen Wert schrittweise leicht erhöhen. Einen Ersatz dafür habe ich leider nicht gefunden.

    JavaScript
    (function() {
    
        if (!window.gBrowser){
            return;
        }
        
        const quickLinks =
        [
            'https://www.tagesschau.de/',
            'https://www.zdf.de/',
            'https://www.br24.de/',
            'https://www.spiegel.de/',
        ];
    
        try {
           CustomizableUI.createWidget({
              id: 'link-button',
              type: 'custom',
              defaultArea: CustomizableUI.AREA_NAVBAR,
              onBuild: function(aDocument) {         
                var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
                var props = {
                    id: 'link-button',
                    class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                    removable: 'true',
                    label: 'Quicklink',
                    accesskey: '',
                    tooltiptext: 'Quicklink:\nForum - camp-firefox.de',
                    style: 'list-style-image:                 url(data:image/png;base64,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)',
                 };            
                 for (var p in props)
                    toolbaritem.setAttribute(p, props[p]);            
                 return toolbaritem; 
              }      
           });
        } catch(e) { };
    
    
        document.getElementById('link-button').addEventListener( 'click', function(event) {
            
            let linkCaller=null;
            let timeout=0;
                
            if (event.button == 0)  {
                linkCaller = event.target;
            }
            else if (event.button == 2) {
                event.preventDefault();
                linkCaller = OpenBrowserWindow();        
                timeout=500;
            }
            else
                return;
    
            setTimeout(function() {    
                quickLinks.forEach((weblink,nIndex) => {
                    if( nIndex == 0 && event.button == 2 )
                    {
                        linkCaller.ownerGlobal.openWebLinkIn(weblink,"current");
                    }
                    else
                    {
                        linkCaller.ownerGlobal.openWebLinkIn(weblink,"tab");
                    }
                });
            }, timeout);        
        }, true);
    }) ();
    Alles anzeigen
  • Quicklink-Button

    • BrokenHeart
    • 28. November 2022 um 23:52
    Zitat von aborix

    Das interessiert mich. Falls du den Link noch findest, teile ihn bitte mit.

    Mittlerweile glaube ich auch, dass du recht hast :/.

    Mit Trusted-Links sind wohl in erster Linie Seitenaufrufe gemeint, welche (Firefox-)interne Seiten darstellen z.B. 'about:config' und diese sollen mit 'OpenTrustedLinkIn' geöffnet werden. Da wird dann das 'System Principal' eingestellt, bei allen anderen Inhalten wird dann wohl 'ContentPrincipal' oder 'NullPrincipal' eingestellt, welche über die Vorschaltfunktion 'openWebLinkIn' aufgerufen werden. Ich habe die Aussagen aus der Bugzilla-Diskussion wohl genau anders herum interpretiert, weil ich davon ausgegangen bin, dass mit 'Trusted' die Quelle des Aufrufs (eben die FirefoxUI) gemeint sind und nicht das Ziel (ein Webseite):/ ,

    Sorry... :( .


    Hier trotzdem noch der Bugzilla-Link:

    1374741 - Have openUILinkIn() provide the correct triggeringPrincipal
    RESOLVED (jonathan) in Core - DOM: Security. Last updated 2019-03-13.
    bugzilla.mozilla.org

    Hier die Aussagen, auf die ich mich bezogen hatte:

    1374741 - Have openUILinkIn() provide the correct triggeringPrincipal
    RESOLVED (jonathan) in Core - DOM: Security. Last updated 2019-03-13.
    bugzilla.mozilla.org
    1374741 - Have openUILinkIn() provide the correct triggeringPrincipal
    RESOLVED (jonathan) in Core - DOM: Security. Last updated 2019-03-13.
    bugzilla.mozilla.org
    Zitat von aborix

    Mit event.preventDefault().

    Danke, funktioniert perfekt! :thumbup:

  • Quicklink-Button

    • BrokenHeart
    • 28. November 2022 um 15:18
    Zitat von 2002Andreas

    Ja.

    Das habe ich aber auch bei einem anderen Skript mit Doppelfunktion Rechts- Linksklick.

    Danke für die Info! Eigentlich ist die rechte Maustaste ja auch für diese Funktionalität vorgesehen und so gesehen ist diese Taste wohl auch nicht 1.Wahl, da dann eben auch die Systemfunktionen aus dem Kontextmenü fehlen. Na ja, man könnte auch wahlweise die ctrl/alt/shift-Taste beim Klicken nehmen oder die mittlere Maustaste. :/

    Ist jetzt aber nicht so wichtig, finde ich... :)

  • Quicklink-Button

    • BrokenHeart
    • 28. November 2022 um 15:00

    2002Andreas:

    Jetzt müsste man noch herausfinden, wie man das kurzzeitige Aufpoppen des Kontextmenüs beim Rechtsklick verhindern kann. Ist das bei dir auch der Fall?

  • Quicklink-Button

    • BrokenHeart
    • 28. November 2022 um 14:47
    Zitat von aborix

    Webseiten sollen mit openWebLinkIn geöffnet werden:

    openTrustedLinkIn, openWebLinkIn

    Das kann ich aus den verlinkten Erklärungen nicht herauslesen. Es geht ja um den Sicherheitskontext und da ein User-Javascript eine Systemerweiterung darstellt, sollte man es schon mit 'OpenTrustedLink' öffnen können. In einer Bugzilla-Diskussion (Link muss ich erst suchen) wurde z.B. das Aufrufen eines Lesezeichens als typische Anwendung für OpenTrustedLinkIn beschrieben.

    Ein Aufruf des Users innerhalb einer Webseite als Beispiel für openWebLinkIn. Aber ich glaube es bleibt sich letztendlich (für uns) egal, was man aufruft...

    Zitat von aborix

    Bei mehreren Fenstern funktioniert der Klick zwar in allen Fenstern, aber nur, solange das erste geöffnet bleibt. Schließt man das erste Fenster, geht in den anderen nichts mehr. Diesen Event Listener:

    toolbaritem.onclick = event => onClick(event);

    muss man anders handhaben.

    Wie wäre es damit? Bei mir funktioniert der Aufruf jetzt auch bei gelöschtem 1. Fenster...

    Bitte mal testen:

    JavaScript
    (function() {
    
        if (!window.gBrowser){
            return;
        }
    
        try {
           CustomizableUI.createWidget({
              id: 'link-button',
              type: 'custom',
              defaultArea: CustomizableUI.AREA_NAVBAR,
              onBuild: function(aDocument) {         
                var currentProfileDirectory = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");
                var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
                var props = {
                    id: 'link-button',
                    class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                    removable: 'true',
                    label: 'Quicklink',
                    accesskey: '',
                    tooltiptext: 'Quicklink:\nForum - camp-firefox.de',
                    style: 'list-style-image: url("' + ("file:" + currentProfileDirectory + "/chrome/icons/icons8-rating-circled-48.png") + '");',
                 };            
                 for (var p in props)
                    toolbaritem.setAttribute(p, props[p]);            
                 return toolbaritem; 
              }      
           });
        } catch(e) { };
    
    
        document.getElementById('link-button').addEventListener( 'click', function(event) {
            
            if (event.button == 0) 
            {
            
                event.target.ownerGlobal.openTrustedLinkIn('https://www.tagesschau.de/',"tab");        
                event.target.ownerGlobal.openTrustedLinkIn('https://www.zdf.de/nachrichten/',"tab");
                event.target.ownerGlobal.openTrustedLinkIn('https://www.hessenschau.de/',"tab");
                
            } 
            else if (event.button == 2) 
            {
                let newWindow = OpenBrowserWindow();
        
                setTimeout(function() {
                    newWindow.ownerGlobal.openTrustedLinkIn('https://www.tagesschau.de/',"current");        
                    newWindow.ownerGlobal.openTrustedLinkIn('https://www.zdf.de/nachrichten/',"tab");
                    newWindow.ownerGlobal.openTrustedLinkIn('https://www.hessenschau.de/',"tab");
                }, 500);
            
                
            } 
            
        }, true);
        
    }) ();
    Alles anzeigen
  • Quicklink-Button

    • BrokenHeart
    • 27. November 2022 um 19:15
    Zitat von harff182

    Hier funktioniert es mit dem linken Mousebutton erst, wenn es vorher mal mit dem rechten Mousebutton genutzt wurde...

    Ist hier nicht so... :/

    Heißt "funktioniert nicht" bei der linken Maustaste, dass überhaupt keine neuen Tabs im aktuellen Fenster geöffnet werden?

  • Quicklink-Button

    • BrokenHeart
    • 27. November 2022 um 19:06
    Zitat von 2002Andreas

    Das funktioniert einwandfrei :thumbup:

    Vielen Dank für die Rückmeldung!

  • Quicklink-Button

    • BrokenHeart
    • 27. November 2022 um 18:45
    Zitat von 2002Andreas

    aber es überschreibt bei Linksklick auch meinen aktuellen Tab.

    Bitte mal testen:

    Das mit dem "timeout" gefällt mir nicht, aber mit "Load()" geht es hier nicht und "DOMContentLoaded" funktioniert meines Wissens auch nicht richtig! :/

    JavaScript
    (function() {
    
        if (!window.gBrowser){
            return;
        }
    
        let newWindow = null;
    
        try {
           CustomizableUI.createWidget({
              id: 'link-button',
              type: 'custom',
              defaultArea: CustomizableUI.AREA_NAVBAR,
              onBuild: function(aDocument) {         
                var currentProfileDirectory = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");
                var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
                toolbaritem.onclick = event => onClick(event);
                var props = {
                    id: 'link-button',
                    class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                    removable: 'true',
                    label: 'Quicklink',
                    accesskey: '',
                    tooltiptext: 'Quicklink:\nForum - camp-firefox.de',
                    style: 'list-style-image: url("' + ("file:" + currentProfileDirectory + "/chrome/icons/icons8-rating-circled-48.png") + '");',
                 };            
                 for (var p in props)
                    toolbaritem.setAttribute(p, props[p]);            
                 return toolbaritem; 
              }      
           });
        } catch(e) { };
    
        function onClick(event) 
        {
            if (event.button == 0) 
            {
                
                let strTabOpen;
                
                if( event.view == newWindow ) {
                    strTabOpen = "current";
                }
                else {
                    strTabOpen = "tab";
                }
                
                newWindow = null;
                
                event.target.ownerGlobal.openTrustedLinkIn('https://www.tagesschau.de/',strTabOpen);        
                event.target.ownerGlobal.openTrustedLinkIn('https://www.zdf.de/nachrichten/',"tab");
                event.target.ownerGlobal.openTrustedLinkIn('https://www.hessenschau.de/',"tab");
            } 
            else if (event.button == 2) 
            {
                newWindow = OpenBrowserWindow();
                
                setTimeout(function() {
                newWindow.document.getElementById('link-button').click();
            }, 500);
            
                
            } 
        }    
        
    }) ();
    Alles anzeigen
  • Quicklink-Button

    • BrokenHeart
    • 27. November 2022 um 17:24
    Zitat von 2002Andreas

    Ich habe mal eine andere Maus an meinen Laptop angeschlossen.

    Und was soll ich sagen...kein 2tes Fenster mehr aufgegangen :/

    :thumbup: ;)

    Zitat von 2002Andreas

    Naja, die kleine Maus ist auch schon rund 7 Jahre alt, wird wohl langsam Zeit sie zu ersetzen.

    Das Problem kenne ich nur zu gut. Hab meine letzte Maus mit Minecraft kaputt geklickt. Dann hat MS die IntelliMouse Pro wieder aufgelegt, die ich ganz früher mal hatte und ewig gehalten hat und ich habe gleich mit 2 Mäusen wieder zugeschlagen. Für mich die beste Maus wo geben tut.

    (Oops, Ist ja immer noch BlackFriday??? :/ )

  • Quicklink-Button

    • BrokenHeart
    • 27. November 2022 um 17:09
    Zitat von 2002Andreas

    Kann das evtl. ein Problem vom Rechtsklick sein?


    Oder lässt sich aus deinem Skript das maximierte Fenster in das Skript von aborix einfügen?

    Ehrlich gesagt, ich weiß es nicht. Vielleicht ein Timing-Problem? :/

    Edit:Wegen des maximierten Fensters: Im Skript wird ja nur im neu geöffneten Fenster der linke Mausklick simuliert, ob das neue Fenster maximiert dargestellt wird oder nicht, entscheidet sich dort nicht. Natürlich könnte man im Skript noch die Größe des Fensters verändern...

    Zitat von harff182

    Ich hab auch mal 15x hintereianander per Rechtsclick geöffnet.

    Sowohl "normale" größe, als auch "maximized".

    Kein zusätzliches/verkleinertes Fenster aufgetaucht...

    Danke für die Info.

    Zitat von harff182

    Ich hab den ersten Code von BrokenHeart (#50) mal benutzt und 'tabshifted' gegen current ausgetauscht.

    Taucht problemlos im neuen Fenster ohne führenden Leertab auf.

    :thumbup:

  • Quicklink-Button

    • BrokenHeart
    • 27. November 2022 um 16:41
    Zitat von 2002Andreas

    Na klar ;)

    Auch wieder 2 Fenster offen :/

    Ok, vielen Dank. Schade, aber läuft dann wohl nicht immer glatt... :/

    Dann mal abwarten. Denke aborix wird schon noch eine Lösung in petto haben... ;)

  • Quicklink-Button

    • BrokenHeart
    • 27. November 2022 um 16:26
    Zitat von 2002Andreas

    Ist komischerweise auch nicht jedesmal. :/

    Könntest du das hier nochmal testen bei dir (hab den Load-Event von aborix da noch reingepfuscht):

    JavaScript
    (function() {
    
        if (!window.gBrowser){
            return;
        }
    
        try {
           CustomizableUI.createWidget({
              id: 'link-button',
              type: 'custom',
              defaultArea: CustomizableUI.AREA_NAVBAR,
              onBuild: function(aDocument) {         
                var currentProfileDirectory = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");
                var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
                toolbaritem.onclick = event => onClick(event);
                var props = {
                    id: 'link-button',
                    class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                    removable: 'true',
                    label: 'Quicklink',
                    accesskey: '',
                    tooltiptext: 'Quicklink:\nForum - camp-firefox.de',
                    style: 'list-style-image: url("' + ("file:" + currentProfileDirectory + "/chrome/icons/icons8-rating-circled-48.png") + '");',
                 };            
                 for (var p in props)
                    toolbaritem.setAttribute(p, props[p]);            
                 return toolbaritem; 
              }      
           });
        } catch(e) { };
    
        function onClick(event) 
        {
            if (event.button == 0) 
            {
                event.target.ownerGlobal.openTrustedLinkIn('https://www.tagesschau.de/',"tabshifted");
                event.target.ownerGlobal.openTrustedLinkIn('https://www.zdf.de/nachrichten/',"tab");
                event.target.ownerGlobal.openTrustedLinkIn('https://www.hessenschau.de/',"tab");
               
            } 
            else if (event.button == 2) 
            {
                let newWindow = OpenBrowserWindow();
                
                /*
                setTimeout(function() {
                    newWindow.document.getElementById('link-button').click();
                }, 500);
                */
                
                newWindow.addEventListener('load', () => {
                    newWindow.document.getElementById('link-button').click();
                }, {once: true});
            } 
        }    
        
    }) ();
    Alles anzeigen
  • Quicklink-Button

    • BrokenHeart
    • 27. November 2022 um 16:21
    Zitat von 2002Andreas

    Es öffnet sich bei Rechtsklick nicht nur ein neues Fenster, sondern gleich 2.

    Hab es jetzt mit einem neuen Profil mehrmals probiert und bei mir passiert das nicht.

    Aber vielleicht ist mein Ansatz auch nicht wirklich zielführend, weil zu einfach gedacht... :/

  • Quicklink-Button

    • BrokenHeart
    • 27. November 2022 um 16:06

    Also ich hatte mir eine viel simplere "Lösung" ausgedacht. Die verwendet allerdings noch nicht den 'neuen Tab' für einen Link.

    Aber, ob die immer richtig funktioniert: :/

    JavaScript
    (function() {
    
        if (!window.gBrowser){
            return;
        }
    
        try {
           CustomizableUI.createWidget({
              id: 'link-button',
              type: 'custom',
              defaultArea: CustomizableUI.AREA_NAVBAR,
              onBuild: function(aDocument) {         
                var currentProfileDirectory = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");
                var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
                toolbaritem.onclick = event => onClick(event);
                var props = {
                    id: 'link-button',
                    class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                    removable: 'true',
                    label: 'Quicklink',
                    accesskey: '',
                    tooltiptext: 'Quicklink:\nForum - camp-firefox.de',
                    style: 'list-style-image: url("' + ("file:" + currentProfileDirectory + "/chrome/icons/icons8-rating-circled-48.png") + '");',
                 };            
                 for (var p in props)
                    toolbaritem.setAttribute(p, props[p]);            
                 return toolbaritem; 
              }      
           });
        } catch(e) { };
    
        function onClick(event) 
        {
            if (event.button == 0) 
            {
                event.target.ownerGlobal.openTrustedLinkIn('https://www.tagesschau.de/',"tabshifted");
                event.target.ownerGlobal.openTrustedLinkIn('https://www.zdf.de/nachrichten/',"tab");
                event.target.ownerGlobal.openTrustedLinkIn('https://www.hessenschau.de/',"tab");
               
            } 
            else if (event.button == 2) 
            {
                let newWindow = OpenBrowserWindow();
                
                setTimeout(function() {
                newWindow.document.getElementById('link-button').click();
                }, 500);
            } 
        }    
        
    }) ();
    Alles anzeigen
  • Quicklink-Button

    • BrokenHeart
    • 27. November 2022 um 15:17

    Erstmal danke an aborix :) .

    2002Andreas Die Größenänderung habe ich auch, aber ich vermute, dass Firefox die letzte Breite/Höhe für das neue Fenster wählt, die für ein nicht-maximiertes Fenster eingestellt war. Maximiert, wie bei mir das "Ursprungsfenster", stellt er es auf jeden Fall nicht dar.

    Ich habe aber ein ganz anderes Problem (auch getestet ohne userChrome.css und andere Skripte): Es wird bei mir im neuen Fenster eine 2. Titelleiste eingeblendet, die aber absolut funktionslos ist. Scheint nur wie ein vergrößerter Fensterrahmen zu reagieren. :/


    Zusatz: Gerade festgestellt. Das neue Fenster lässt sich auch an den Rändern nicht mehr in der Größe verändern. Verhält sich so, als wenn es maximiert wäre... :/

  • Windows 10 und Virenschutzprogramm

    • BrokenHeart
    • 26. November 2022 um 11:25
    Zitat von StandingBill

    bin ich auch zum Supporter geworden und habe mich mit einem Laden selbstständig gemacht

    Ich mag deinen Humor... :) ;)

  • Quicklink-Button

    • BrokenHeart
    • 25. November 2022 um 20:33
    Zitat von BrokenHeart

    Das ganze richtig abzufragen, wäre sicherlich ein sehr hoher Aufwand.

    Zitat von harff182

    Kann ich nicht beurteilen, aber ich kann suchen und finden :D :

    Das, was du zitiert hast, hatte ich als Antwort auf den Vorschlag von 2002Andreas Andreas geschrieben. Du hast ja ein ganz anderes Vorgehen angeregt, nämlich das wahlweise Öffnen aller Tabs in einem neuen Fenster. Da fallen dann natürlich alle Abfragen weg, um zu entscheiden in welchem Fenster ich bin und welcher Tab zu löschen ist.

    Das Skript von aborix macht genau das, was notwendig ist, um mehrere Tabs zu öffnen und dabei einen leeren Tab mitzuverwenden, indem es die dafür zuständige Systemfunktion patched:

    Zitat aborix:

    Zitat

    "Das Skript verändert die Funktion PlacesUIUtils.openTabset, die für das gleichzeitige Öffnen mehrerer Tabs zuständig ist."

    Ich kannte dieses Skript nicht und habe es auch (noch) nicht getestet, aber mir schwebte ehrlich gesagt eine speziellere und viel simplere Lösung vor, mal schauen.

    Aber vielleicht ist es auch besser, wenn sich aborix der Sache annimmt, er ist schließlich der unangefochtene "Skript-Magier". ;) (Zitat Boersenfeger aus dem gleichen Thread: "Aborix zaubert solche Dinge öfter mal aus dem Hut... :D...") .

  • Quicklink-Button

    • BrokenHeart
    • 25. November 2022 um 15:16
    Zitat von harff182

    Neueste Idee:

    Linker Mausebutton öffnet die TABs um aktuellen Fenster.

    Rechter Mausbutton öffnet ein neues Fenster und die Buttons darin.

    Das halte ich für eine ziemlich gute Idee! :thumbup:

    Zitat von Mira_Belle

    Vielleicht so?

    Ändert leider nichts. Der neue Tab bleibt erhalten. Oder wie war das gemeint? :/

    Zitat von 2002Andreas

    Dann ist ja der erste Tab der, den man dafür eingestellt hat.


    Klicke ich dann auf den neuen Button, dann wird der erste Tab mit dem ersten Link im Skript überschrieben.

    Hoffe, dass ich es jetzt verstanden habe, wie du das gemeint hast: Es soll immer der erste Tab in einem neuen Fenster überschrieben (oder gelöscht) werden. Das Problem ist nur, dass das Skript ja nicht weiß, was das neue Fenster ist. Es hat ja nicht das Öffnen des Fensters angestoßen, sondern öffnet nur die Tabs. Wenn man nun zum 1. Fenster wechselt, würde er das Überschreiben dort auch durchführen. Das ganze richtig abzufragen, wäre sicherlich ein sehr hoher Aufwand.

    Edit: sehe gerade dein Zusatzposting, wo du den gleichen Sachverhalt auch ansprichst! ;)

    Ich finde die Idee von harff182 eigentlich am besten... :)

  • Quicklink-Button

    • BrokenHeart
    • 25. November 2022 um 14:54
    Zitat von harff182

    In einem neuen Fenster gibts ja ein leeres Tab. Das könnte man verschwinden lassen/mitbenutzen.

    Das in dieses Skript einzubauen, halte ich für nicht sonderlich praktikabel. Das Skript öffnet ja erst auf Aufforderung mehrere Seiten/Tabs. Das muss ja nicht sofort nach dem Öffnen eines weiteren Fensters passieren. Es kann also durchaus sein, dass ein "Neuer Tab"-Tab irgendwann willentlich geöffnet wurde. z.B. weil man was auf der Startseite auswählen wollte. Das Skript könnte dann nur irgendeinen/oder alle "Neuer Tab"-Tab(s) schließen, was ich aber irgendwie als "anmaßend" empfinden würde.

    Vielleicht fehlt mir auch nur die Phantasie, wie man so was lösen könnte... ;)

Unterstütze uns!

Jährlich (2026)

32,8 %

32,8% (213,31 von 650 EUR)

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