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

  • Sidebar Hover Code anpassen

    • BrokenHeart
    • 6. Dezember 2022 um 07:25

    Wichtig:

    Das in #40 gepostete Skript habe ich wieder gelöscht, da es fehlerhaft ist. Das Skript arbeitet zwar (soweit ich das testen konnte) problemlos, aber wenn man das Skript wieder aus dem Chrome Ordner entfernt, so bleiben Einstellungen für die Sidebar erhalten, die sich nicht so einfach wieder rückgängig machen lassen. Es wird. z.B. die Höhe des Sidebar-Inhalts auf die letzte Fenstergröße reduziert bzw. erweitert. Dieses Verhalten zeigt sich nur in FF107+ (frühere Versionen, außer der ESR, habe ich nicht). In der ESR zeigt sich dieses Verhalten nicht!

    Ich möchte jedem, der das Skript aus #40 ausprobiert hat, dringend raten, das Skript zu löschen und nachfolgendes Reset-Skript einmal zu starten, auch wenn man keine Änderungen an der Sidebar festgestellt hat! Mit dem kleinen Skript werden einfach alle Positions- und Größenangaben der Sidebar wieder auf die Standardwerte gesetzt. Natürlich sollte vor Neustart das fehlerhafte Skript aus dem chrome Ordner entfernt werden. Nachdem die Standardwerte wieder hergestellt wurden, bitte das Reset-Skript wieder aus dem chrome Ordner entfernen, da sonst die Standardwerte bei jedem Start wieder gesetzt werden.

    Sorry für die Unannehmlichkeiten! Ich werde das Skript überarbeiten und dann eine neue Version hier wieder einstellen...

    JavaScript: ResetSidebar.uc.js
    "use strict";
    
    (function() {
    
        if (!window.gBrowser){
            return;
        }
    
        let sidebarBox = document.querySelector('#browser>#sidebar-box');
        let sidebar = document.querySelector('#browser>#sidebar-box>#sidebar');
        
        //Reset -----
        sidebarBox.style.minHeight = "";
        sidebarBox.style.maxHeight = "";
        sidebarBox.style.marginLeft = ""; 
        sidebarBox.style.marginRight = ""; 
        sidebarBox.style.width = "";
        sidebarBox.style.height = "";
        sidebar.style.minHeight = "";
        sidebar.style.maxHeight = "";
        //Reset -----
    
    }) ();
    Alles anzeigen
  • Sidebar Hover Code anpassen

    • BrokenHeart
    • 5. Dezember 2022 um 07:37

    Für alle, die Skripte nutzen, habe ich hier noch eine reine Skriptversion gebastelt.

    - Es müssen keine Angaben mehr zur Größe oder Positionierung gemacht werden. Die Sidebar passt sich, wie das Original, immer der Browsergröße an.

    - Funktioniert auch mit mehrzeiliger Lesezeichenleiste/Tableiste.

    - Drag&Drop (z.B. von Tabs) funktioniert. Nähert man sich mit dem Tab oder Lesezeichen dem Rand, öffnet sich die Sidebar und schließt sich auch wieder, wenn man fertig ist.

    - Läuft auch in der aktuellen Nightly (04.12.2022)

    Einschränkung: Augenblicklich geht es nur, wenn die Sidebar links ist!

    Bitte testen:

    Edit: ...gelöscht siehe ->

    Beitrag

    RE: Sidebar Hover Code anpassen

    Wichtig:

    Das in #40 gepostete Skript habe ich wieder gelöscht, da es fehlerhaft ist. Das Skript arbeitet zwar (soweit ich das testen konnte) problemlos, aber wenn man das Skript wieder aus dem Chrome Ordner entfernt, so bleiben Einstellungen für die Sidebar erhalten, die sich nicht so einfach wieder rückgängig machen lassen. Es wird. z.B. die Höhe des Sidebar-Inhalts auf die letzte Fenstergröße reduziert bzw. erweitert. Dieses Verhalten zeigt sich nur in FF107+ (frühere Versionen,…
    BrokenHeart
    6. Dezember 2022 um 07:25
  • Mehrzeilige Tableiste für aktuelle Firefox-Versionen

    • BrokenHeart
    • 3. Dezember 2022 um 23:20
    Zitat von moonson

    Das hat jetzt richtig zur Lösung meines Problems beigetragen. Vielen Dank!

    Was soll denn dieser absolut überflüssige Kommentar von dir? :( :/

    2002Andreas hat dir die Information gegeben, dass das aktuelle Skript bei ihm der neusten FF-Version läuft, was übrigens bei mir auch der Fall ist. Das ist vor allem dann eine wichtige Information, wenn du selber den Fehler an dem Update auf 107.0.1 festmachst. Du lieferst zwar die Information, dass du seit der Version 107 nichts geändert hattest, aber deswegen kennen wir ja noch lang nicht den aktuellen Ist-Zustand deines Systems z.B.:

    - Windows/Mac/Linux-Version

    - Inhalt der userChrome.css

    - weitere Skripte

    - Screenshot vom jetzigen fehlerhaften Zustand

    - User-Settings des Skripts

    Ohne diese Informationen ist es doch ganz offensichtlich, dass mehr Hilfe als das, was Andreas angeboten hat, überhaupt nicht möglich ist.

    Auf jeden Fall hättest du dir aber den sarkastischen Unterton in deiner Antwort sparen können, vor allem wenn man bedenkt, dass Andreas dir helfen wollte... :/

  • Sidebar Hover Code anpassen

    • BrokenHeart
    • 2. Dezember 2022 um 13:08
    Zitat von geldhuegel

    Das verzögerte schließen ist mir wichtig.

    Hallo geldhuegel,

    bitte teste mal folgenden CSS-Code:

    Zeile 30 und 31:
    Breite der Sidebar -> 300px.

    Zeile 38:

    margin-left: -296px + Breite = 4 Pixel = Abstand zum linken Rand, ab dem die Sidebar ausfährt.

    Zeile 39:

    Verzögerung, ab der die Sidebar wieder verschwindet: 'linear 4s' = 4 Sekunden.

    'opacity' sollte immer 50% höher liegen, also hier: 'opacity 6s' = 6 Sekunden.

    CSS
        @-moz-document url("chrome://browser/content/places/bookmarksSidebar.xhtml"),
    url("chrome://browser/content/browser.xhtml") {
    
        #menu_bookmarksSidebar {
             display: -moz-box !important;
         }
    
        #bookmarks-view-children {
             margin-top: -120px !important;
             margin-left: -15px !important;
        }
        
        .sidebar-placesTreechildren::-moz-tree-separator {
        margin: 0px 500px !important;
        }
    
        #sidebar-header {
            display: none !important;
        }
    
        #sidebar-search-container {
            display: none !important;
        }
    
        #sidebar-box {
            display: flex !important;
            position: absolute!important;
            top: 155px;
            bottom: -35px;
            width: 300px !important; 
            min-width: 300px !important; 
            z-index: 100 !important;
            overflow-x: hidden !important;
            appearance: none !important;
            border: 1px solid transparent !important;
            border-left: 0px !important;
            opacity: 0 !important;
            margin-left: -296px !important;
            transition: margin-left 0.5s linear 4s, opacity 6s ease-in 0.2s !important; 
        }
    
        #sidebar-box:hover {
            z-index: 100 !important;
            opacity: 1 !important;
            margin-left: 0px !important;
            transition: margin-left 0.66s !important; 
        }
    
        #sidebar {
            display: flex !important;
            position: absolute!important;
            width: 100% !important;
            height: 95%;
        }
        
        #sidebar-splitter {
            display: none !important;
        }    
    }
    Alles anzeigen
  • Quicklink-Button

    • BrokenHeart
    • 30. November 2022 um 17:33

    Endor :

    Gerne! Freut mich, wenn es funktioniert... :)

  • Merkwürdie Log-Meldung in der Browser-Konsole

    • BrokenHeart
    • 29. November 2022 um 20:52

    Danke für die Antworten!

    Zitat von Sören Hentzschel

    In jedem Fall kommt diese bei Google News, vielleicht auch bei anderen Google-Seiten.

    Das stimmt. Schon der Aufruf reicht, um diese Meldung zu generieren.

    Self-XSS - Wikipedia

    Zitat

    Firefox[5] and Google Chrome[6] have both begun implementing safeguards to warn users about Self-XSS attacks. Facebook and others now display a warning message when users open the web developer console,

    Hat es auf diesen Seiten (Google News, Facebook) besagte 'Self-XSS-attacks' schon öfters gegeben oder warum wird diese Meldung so prominent ausgegeben? So wie ich es verstanden habe, soll man ja als Besucher animiert werden, selber bösen JS-Code in die Konsole oder Addressbar zu schreiben, um sich selbst zu infizieren. Sollte dann nicht so eine Warnung permanent erscheinen und nicht nur bei bestimmten Websites?

    "Self-XSS-attacks" erinnert mich etwas an den sogenannten albanischen Mail-Virus. Da wurde man aufgefordert, zuerst die Mail an Freunde und Bekannte weiterzuschicken und dann sein System durch Löschen aller Dateien oder Formatierung selber zu schrotten. :/

  • Merkwürdie Log-Meldung in der Browser-Konsole

    • BrokenHeart
    • 29. November 2022 um 18:28

    Hallo,

    hat jemand schon einmal so eine Log-Meldung in der Konsole gehabt? Woher kommt die?

    Ich vermute, dass es vom Firefox/Developer selber kommt, wegen der doch sehr "auffälligen" Formatierung ;) .

    Habe zwar noch einen Screenshot gemacht, aber leider hatte ich den Browser dann zwischenzeitlich wieder gestartet, daher weiß ich nicht mal mehr den Kontext, in dem die Meldung kam. Oder werden solche Meldungen irgendwo auch persistent mitgeloggt?

    Wäre für alle Hinweise dankbar...

  • Mehrzeilige Tableiste für aktuelle Firefox-Versionen

    • BrokenHeart
    • 29. November 2022 um 16:34
    Zitat von Rob

    sobald die Tabhöhe unter 30 liegt. Ist das Eventuell eine Mindesthöhe für die Tableiste?

    Nein definitiv nicht. Habe es eben mit einer Höhe von 12px ausprobiert. Das funktioniert einwandfrei...

    Poste doch mal deine Usereinstellungen am Anfang des Skripts...

  • Quicklink-Button

    • BrokenHeart
    • 29. November 2022 um 16:06
    Zitat von Mira_Belle

    Ich würde gerne noch einmal auf eine Frage zurückkommen, die ich hier #18

    schon einmal stellte.


    Warum funktioniert "mein" Script nicht?

    Es geht um Zeile 14.

    Du hattest in deinem Skript aus #1 zwei unterschiedliche IDs verwendet:

    Code
           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-cf',
  • Quicklink-Button

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

    Bei einem Rechtsklick wird ganz kurz die Seite Neuer Tab angezeigt, bevor die eingestellte aufgerufen wird.

    Ja, ist hier auch so. Ich vermute es hängt immer noch mit dem leider notwendigen Timeout zusammen, obwohl der Wert ja auch im alten Skript auf 500ms steht?! :/

    Keine Ahnung, ob es dafür ein Lösung gibt?! (mich stört es allerdings nicht sonderlich)

  • Quicklink-Button

    • BrokenHeart
    • 29. November 2022 um 15:46
    Zitat von FuchsFan

    und funktioniert auch noch.

    Ja, dass mit dem Funktionieren hatte ich mir noch als besonderes "Schmankerl" überlegt... ;) ^^

  • Mehrzeilige Tableiste für aktuelle Firefox-Versionen

    • BrokenHeart
    • 29. November 2022 um 15:41
    Zitat von Rob

    Wenn man die Menüleiste ausblendet und nicht das MoveMinMaxCloseButton Skript nutzt, kann man, mit betätigen der "Alt"-Taste auf der Tastatur, die Menüleiste einblenden. Das funktioniert auch wie gehabt, nur sind die Buttons MinMaxClose ohne Funktion. Bei eingeblendeter Menüleiste funktionieren diese tadellos.

    Kann ich bestätigen, muss ich mir mal anschauen...

    Zitat von Rob

    Außerdem habe ich zwei Fragen:

    Besteht die Möglichkeit die Tab Breite variabel zu definieren? Mit dem alten Skript habe ich die Standardbreite auf 240px gehabt, sobald mehrere Tabs in der Zeile waren, ist die Breite auf bis zu 160px geschrumpft.

    Das ist auch so vorgegeben. Für eine variable Breite der Tabs müsste ich das Skript nochmal anpassen und testen. Mal schauen...

    Zitat von Rob

    Solange man nur eine Tab Zeile hat, ist der Abstand zum Fensterinhalt relativ groß und schrumpft, sobald man zwei oder mehr Zeilen hat. Kann man diesen Abstand bereits für nur eine Zeile verringern?

    Das sollte auf jeden Fall nicht so aussehen wie auf deinen Screenshots. Hast du noch eigene Anpassungen (an der Tableiste?) in der userChrome.css gemacht?

    Momentan hat dieses Skript nicht die allerhöchste Priorität für mich, weil ich seit langer Zeit schon an einer gänzlich umgestalteten Version arbeite und die vorliegende Version nur soweit anpassen möchte, dass sie auch mit den neuesten FF-Versionen funktioniert und keine allzu großen Bugs enthält.

  • 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!

Unterstütze uns!

Jährlich (2025)

101,9 %

101,9% (662,48 von 650 EUR)

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