Ich habe soeben bemerkt, der Fuchs auf Aris' Avatar hat zwei Pflaster, eins am Kopf und eins am Arm. Sind das Verletzungen durch Quantum?
Beiträge von aborix
-
-
-
Ich habe im letzten Skript noch etwas geändert. Es funktioniert jetzt für die Menüleiste. Wenn es bei dir nicht funktioniert, dann liegt es wohl an macOS.
CSS
Alles anzeigen(function() { /*****************/ /* Konfiguration */ /*****************/ let options = { /* Zu möglichen Werten siehe unter https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString */ weekday: 'long', year: 'numeric', month: 'long', day: 'numeric', hour: '2-digit', minute: '2-digit', second: '2-digit' }; /* Zu möglichen Farbanangaben vgl. https://wiki.selfhtml.org/wiki/CSS/Wertetypen/Farbangaben weitere CSS-Angaben unbedingt innerhalb der einfachen Anführungszeichen, bei Vorgabe einer Schrift auf Verwendung doppelter Anführungszeichen achten, Beispiel: font-family: "Courier New"; */ let css = 'color: lightyellow; font-weight: 700; padding-top: 4px !important; padding-left: 5px; text-shadow: none;'; let lang = 'de-DE'; let showProgramName = true; // false let ClockStatus = document.getElementById('helpMenu'); //let ClockStatus = document.getElementById('TabsToolbar').lastChild; /* Ende Konfiguration */ /**************************************************************/ function doDatClock() { let timestr = new Date().toLocaleDateString(lang , options); if (showProgramName == true) { let ua = window.navigator.userAgent; let FFstr = ua.split(' '); let FF = FFstr[FFstr.length-1].replace( '/' , ' ' ); let text = FF + ' '; let agent = document.getElementById('statusbar-agent-display'); agent.setAttribute('value' , text); } let status = document.getElementById('statusbar-clock-display'); status.setAttribute('value' , timestr); window.setTimeout(doDatClockCallback , 1000); } function doDatClockCallback() { try{ doDatClock(); } catch(ex){} } if (showProgramName == true) { var AgentLabel = document.createElement('label'); AgentLabel.setAttribute('id' , 'statusbar-agent-display'); AgentLabel.setAttribute('class' , 'statusbarpanel-text'); AgentLabel.setAttribute('style' , css); } let ClockLabel = document.createElement('label'); ClockLabel.setAttribute('id' , 'statusbar-clock-display'); ClockLabel.setAttribute('class' , 'statusbarpanel-text'); ClockLabel.setAttribute('style' , css); ClockStatus.parentNode.insertBefore(ClockLabel , ClockStatus.nextSibling); if (showProgramName == true) ClockStatus.parentNode.insertBefore(AgentLabel , ClockStatus.nextSibling); doDatClock(); })();
-
Zu macOS und Skripten im Allgemeinen hatten wir kürzlich diesen Thread: https://www.camp-firefox.de/forum/viewtopic.php?f=16&t=123286
Das Skript aus # 107 für die Tableiste:
CSS
Alles anzeigen(function() { /*****************/ /* Konfiguration */ /*****************/ let options = { /* Zu möglichen Werten siehe unter https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString */ weekday: 'long', year: 'numeric', month: 'long', day: 'numeric', hour: '2-digit', minute: '2-digit', second: '2-digit' }; /* Zu möglichen Farbanangaben vgl. https://wiki.selfhtml.org/wiki/CSS/Wertetypen/Farbangaben weitere CSS-Angaben unbedingt innerhalb der einfachen Anführungszeichen, bei Vorgabe einer Schrift auf Verwendung doppelter Anführungszeichen achten, Beispiel: font-family: "Courier New"; */ let css = 'color: lightyellow; font-weight: 700; padding-top: 4px !important; padding-left: 5px; text-shadow: none;'; let lang = 'de-DE'; let showProgramName = true; // false //var ClockStatus = document.getElementById('helpMenu'); let ClockStatus = document.getElementById('TabsToolbar').lastChild; /* Ende Konfiguration */ /**************************************************************/ function doDatClock() { let timestr = new Date().toLocaleDateString(lang , options); if (showProgramName == true) { let ua = window.navigator.userAgent; let FFstr = ua.split(' '); let FF = FFstr[FFstr.length-1].replace( '/' , ' ' ); let text = FF + ' '; let agent = document.getElementById('statusbar-agent-display'); agent.setAttribute('value' , text); } let status = document.getElementById('statusbar-clock-display'); status.setAttribute('value' , timestr); window.setTimeout(doDatClockCallback , 1000); } function doDatClockCallback() { try{ doDatClock(); } catch(ex){} } if (showProgramName == true) { var AgentLabel = document.createElement('label'); AgentLabel.setAttribute('id' , 'statusbar-agent-display'); AgentLabel.setAttribute('class' , 'statusbarpanel-text'); AgentLabel.setAttribute('style' , css); } let ClockLabel = document.createElement('label'); ClockLabel.setAttribute('id' , 'statusbar-clock-display'); ClockLabel.setAttribute('class' , 'statusbarpanel-text'); ClockLabel.setAttribute('style' , css); ClockStatus.parentNode.insertBefore(ClockLabel , ClockStatus.nextSibling); if (showProgramName == true) ClockStatus.parentNode.insertBefore(AgentLabel , ClockStatus.nextSibling); doDatClock(); })();
-
Ja.
Mit diesem Skript öffnet ein Rechtsklick einen Link in einem neuen Tab im Hintergrund und Strg+Rechtsklick öffnet das Kontextmenü. Ob es mit Strg+Linksklick und langem Linksklick ähnlich einfach geht, weiß ich jetzt nicht. Auf relativ komplizierte Art geht es schon.
Code
Alles anzeigen(function() { if (location != 'chrome://browser/content/browser.xul') return; let contextMenu = document.getElementById('contentAreaContextMenu'); let show = false; gBrowser.addEventListener('click', function(event) { if (event.ctrlKey && event.button == 2) { show = true; }; }); contextMenu.addEventListener('popupshowing', function(event) { if (event.target != this) return; if (show) { show = false; } else { if (gContextMenu.link) { openUILinkIn(gContextMenu.linkURL, 'tabshifted'); }; event.preventDefault(); }; }); })();
-
Hallo,
seit kurzem gibt es eine Änderung in der config.js. Für macOS brauchst du die neue Version:
Code
Alles anzeigen// config.js const Cu = Components.utils; try { Cu.import("resource://gre/modules/Services.jsm"); Cu.import("resource://gre/modules/osfile.jsm"); if (!Services.appinfo.inSafeMode) { let path = OS.Constants.Path.libDir; if (Services.appinfo.OS == 'Darwin') { // macOS path = OS.Path.join(OS.Path.dirname(path), "Resources"); }; var ucjsDirPath = OS.Path.join(path, "userChromeJS"); path = OS.Path.join(ucjsDirPath, "main.js"); let mainFileURI = OS.Path.toFileURI(path); Services.scriptloader.loadSubScript(mainFileURI, this, "UTF-8"); }; } catch(e) { Cu.reportError(e); };
Funktioniert es damit?
-
Die Skripte werden bei jedem Öffnen eines Fensters ausgeführt. Das gilt nicht nur für Hauptfenster (d.s. die üblichen zum Anzeigen von Webseiten), sondern auch für Bibliothek, Browserkonsole, Meldungsfenster usw.
"chrome://browser/content/browser.xul" ist die Adresse der Hauptfenster und die meisten Skripte sollen nur in diesen wirken. Darum die Abfrage, in welchem Fenster das Skript gerade läuft. Ohne die Abfrage entsteht üblicherweise kein Schaden. In einem anderen Fenster wird meistens die Ausführung an irgendeiner Stelle abgebrochen, meistens weil dort ein vom Skript referenziertes Element nicht vorhanden ist. In der Browserkonsole erscheint dann eine entsprechende Fehlermeldung. Wenn nun ein Skript nicht funktioniert und man in der Konsole nach hilfreichen Meldungen sucht, ist oft nicht gleich festzustellen, ob eine Fehlermeldung einen tatsächlichen Fehler im Skript betrifft oder aufgrund eines anderen Fensters auftritt. Darum vermeide ich solche überflüssigen Fehlermeldungen mit der Abfrage.
Die einhüllende Funktion ist in erster Linie dazu da, die Entstehung von globalen Variablen zu vermeiden. Das globale Objekt ist dabei das jeweilige Fenster und unerwünschte Wechselwirkungen mit anderen Skripten könnten auftreten.
Ich weiß nicht, ob solche Themen für so viele Leute nützlich sind, dass wir auf prominenter Stelle darauf eingehen. Vielleicht äussern noch andere ihre Meinung dazu.
-
Hallo,
teste bitte folgendes Skript.
Ein Rechtsklick auf einen Link öffnet ihn in einem neuen Tab, ein Rechtsklick sonstwohin öffnet wie üblich das Kontextmenü.Code
Alles anzeigen(function() { if (location != 'chrome://browser/content/browser.xul') return; let contextMenu = document.getElementById('contentAreaContextMenu'); contextMenu.addEventListener('popupshowing', function(event) { if (event.target != this) return; if (gContextMenu.link) { openUILinkIn(gContextMenu.linkURL, 'tab'); event.preventDefault(); }; }); })();
-
-
Das wurde schon öfters gefragt und niemand wusste eine.
Im Quelltext stehen hier viele Einstellungen mit Kommentar:
https://dxr.mozilla.org/mozilla-releas…file/firefox.jsDass es den Wert 3 für browser.link.open_newwindow.restriction gibt: woher hast du das oder ist das ein Irrtum? M.W. gibt es den nicht und auch hier steht er nicht:
https://dxr.mozilla.org/mozilla-releas…/firefox.js#429 -
Mit dem Standard-Wert von browser.link.open_newwindow.restriction werden allerdings manche in Firefox aufgerufene Links in einem neuen Fenster geöffnet, siehe
Mozillazine KB - browser.link.open_newwindow.restriction -
Versuche es mit diesen Einstellungen in about:config:
browser.link.open_newwindow: 3
browser.link.open_newwindow.restriction: 0
browser.link.open_newwindow.override.external: -1 und 3 -
Anscheinend weiß niemand etwas dazu. Aris kann vielleicht helfen, hat das aber nicht unbedingt gelesen. Vielleicht eine PN an ihn?
-
-
Vorweg sorry für meine späte Antwort, ich war den ganzen Tag beruflich unterwegs.Das macht überhaupt nichts, ich antworte manchmal sogar erst nach ein paar Tagen.
Der Test:
Ersetze die besagte Zeile in der config.js durch diese zwei Zeilen:und gib den Ordner userChromeJS wieder dorthin, wo er anfangs war; das ist der Ordner Resources, wenn ich es richtig verstanden habe.
Teste, ob die Skripte funktionieren.Noch eine andere Frage, mach dazu bitte folgendes:
Falls die Browserkomsole offen ist, schließe sie. Dann setze in about:config devtools.chrome.enabled auf true. Dann öffne die Browserkonsole und gib unten in die Eingabezeile folgendes ein, gefolgt von der Enter-Taste:
Es erscheint dann eine Zeichenkette. Wie lautet sie? -
Ich nehm an, das kann ich als Erfolg werten?!
Genau!
Um einen Test möchte ich dich später noch bitten, aber zuvor teile mir bitte den genauen Pfad zur config.js mit.zur userChrome.css und userContent.css:
Gib in die Dateien nur den Code von Aris, der enthält ohnehin alles Notwendige; das andere stört anscheinend. Allerdings hast du den gleichen Code in beiden Dateien, das ist wahrscheinlich nicht richtig. -
-
-
Glaube ich nicht.
Versuche es nochmal in einem neuen Profil nach dieser Beschreibung:
Firefox Anpassungen: die Basisund wieder mit dieser userChrome.js:
und diesmal diesem Skript:
Öffne gleich nach dem Start mit Cmd+Umschalt+J die Browserkonsole und dort schalte oben die JS- und Logbuch-Meldungen ein und die anderen aus. Zeige bitte einen Screenshot mit den Meldungen, die dann dort stehen.
-