Und warum nicht mit dem PowerShell-Skript?
Beiträge von Mira_Belle
-
-
Zwei Dumme, ein Gedanke!
Toll, wenn es nun funktioniert!Vielleicht solltest du den Script-Header aktualisieren....
Eventuell so gar mit Datum? 2025.06.18
Werde ich so machen.Neu:
JavaScript
Alles anzeigen// ==UserScript== // @name newTabFromHistory.uc.js // @namespace https://www.camp-firefox.de/forum/viewtopic.php?p=1090093#p1090093 // @description Links aus Chronik in neuem Tab öffnen // @author aborix // @Source https://www.camp-firefox.de/forum/thema/138013/?postID=1251376#post1251376 // @Source_new https://www.camp-firefox.de/forum/thema/139502/?postID=1273989#post1273989 // @compatibility 139+ // @version 0.0.5 date 2025.06.18 // ==/UserScript== (function() { if (location.href !== 'chrome://browser/content/browser.xhtml') return; PlacesUIUtils.openNodeWithEvent = function PUIU_openNodeWithEvent(aNode, aEvent) { let window = aEvent.target.ownerGlobal; let browserWindow = (window && window.document.documentElement.getAttribute('windowtype') == 'navigator:browser') ? window : BrowserWindowTracker.getTopWindow(); let where = window.BrowserUtils.whereToOpenLink(aEvent, false, true); if (this.loadBookmarksInTabs) { if (where == 'current' && !aNode.uri.startsWith('javascript:')) { where = 'tab'; } if (where == 'tab' && browserWindow.gBrowser.selectedTab.isEmpty) { where = 'current'; } } this._openNodeIn(aNode, where, window); } let onPopupshowing = function () { let historyMenu = document.getElementById('history-menu'); if (!historyMenu._placesView) { new HistoryMenu(event); historyMenu._placesView._onCommand = function HM__onCommand(aEvent) { let placesNode = aEvent.target._placesNode; if (placesNode) { PlacesUIUtils.openNodeWithEvent(placesNode, aEvent); } } } } let historyPopup = document.getElementById('historyMenuPopup'); historyPopup?.addEventListener('popupshowing', onPopupshowing); })();
-
Ersetze Zeile 17 bis 20 mit:
JavaScript
Alles anzeigenlet browserWindow = (window && window.document.documentElement.getAttribute('windowtype') == 'navigator:browser') ? window : BrowserWindowTracker.getTopWindow(); let where = window.BrowserUtils.whereToOpenLink(aEvent, false, true); if (this.loadBookmarksInTabs) { if (where == 'current' && !aNode.uri.startsWith('javascript:')) { where = 'tab'; } if (where == 'tab' && browserWindow.gBrowser.selectedTab.isEmpty) { where = 'current'; } } this._openNodeIn(aNode, where, window); }
Ich garantiere aber für nichts und weiß auch nicht, ob es funktioniert.
-
Und wie ist es mit dieser, neueren Version?
JavaScript
Alles anzeigen// ==UserScript== // @name newTabFromHistory.uc.js // @namespace https://www.camp-firefox.de/forum/viewtopic.php?p=1090093#p1090093 // @description Links aus Chronik in neuem Tab öffnen // @author aborix // @Source https://www.camp-firefox.de/forum/thema/138013/?postID=1251376#post1251376 // @compatibility 127+ // @version 0.0.4 // ==/UserScript== (function() { if (location.href !== 'chrome://browser/content/browser.xhtml') return; PlacesUIUtils.openNodeWithEvent = function PUIU_openNodeWithEvent(aNode, aEvent) { let window = aEvent.target.ownerGlobal; // let browserWindow = (window && window.document.documentElement.getAttribute('windowtype') == 'navigator:browser') ? window : BrowserWindowTracker.getTopWindow(); let where = 'tab'; // Always open in a new tab this._openNodeIn(aNode, where, window); } let onPopupshowing = function () { let historyMenu = document.getElementById('history-menu'); if (!historyMenu._placesView) { new HistoryMenu(event); historyMenu._placesView._onCommand = function HM__onCommand(aEvent) { let placesNode = aEvent.target._placesNode; if (placesNode) { PlacesUIUtils.openNodeWithEvent(placesNode, aEvent); } } } } let historyPopup = document.getElementById('historyMenuPopup'); historyPopup.setAttribute('onpopupshowing', '(' + onPopupshowing.toString() + ')()'); })();
-
Also wäre dann das Skript z.Z. wie folgt abzuändern:
JavaScript(function () { if (location.href !== 'chrome://mozapps/content/downloads/unknownContentType.xhtml') return; const { FileUtils } = ChromeUtils.importESModule('resource://gre/modules/FileUtils.sys.mjs'); const { setTimeout } = ChromeUtils.importESModule('resource://gre/modules/Timer.sys.mjs'); setTimeout(function () { ...
Richtig?
-
-
Hi harff182 Sorry, ich war wohl etwas neben der Spur!
Die von mir gepostete Skripte rufen "about:about" auf
und nicht wie von Dir gewünscht den Dialog "Über Firefox"Bitte vielmals um Entschuldigung, wenn ich für Verwirrungen und/oder Irritationen gesorgt habe.
-
Schau Dir dieses Skript einmal an!
JavaScript
Alles anzeigen// JavaScript Document // QuickLinkButton-about:about.uc.js = Button_for_QuickLinks-about.uc.js // Source file https://www.camp-firefox.de/forum/thema/135613/?postID=1213791#post1213791 // Source file https://www.camp-firefox.de/forum/thema/139289/?postID=1271890#post1271890 /* ----------------------------------------------------------------------------------- */ /* Zu beachten ist, dass die Grafiken sich im richtigen Ordner befinden müssen */ /* %appdata%\Mozilla\Firefox\Profiles\"Profilname"\chrome\icons */ /* ----------------------------------------------------------------------------------- */ (function() { if (location.href !== 'chrome://browser/content/browser.xhtml') return; try { CustomizableUI.createWidget({ id: 'link-button-about', type: 'custom', defaultArea: CustomizableUI.AREA_NAVBAR, onBuild: function(aDocument) { let toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton'); let props = { id: 'link-button-about', class: 'toolbarbutton-1 chromeclass-toolbar-additional', removable: 'true', label: 'Quicklink: about:about', tooltiptext: 'Quicklink:\nabout:about', }; for (var p in props) { toolbaritem.setAttribute(p, props[p]); } return toolbaritem; } }); } catch(e) {}; document.getElementById('link-button-about').addEventListener('click', event => { if (event.button === 0) { openTrustedLinkIn("about:about", "tab") } }); // Pfad zum Profilordner let ProfilePath = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/"); // Pfad in den entsprechenden Unterordner let IconPath = '/chrome/icons/'; // Name & Dateiendung des anzuzeigenden Symbols! let ButtonIcon = "firefox.svg"; // Erstelle ein img-Element, um zu überprüfen, ob die Grafik geladen werden kann let img = new Image(); img.src = "file:" + ProfilePath + IconPath + ButtonIcon; img.onload = function() { // Wenn die Grafik geladen werden kann, setze das listStyleImage document.getElementById('link-button-about').style.listStyleImage = 'url("' + ("file:" + ProfilePath + IconPath + ButtonIcon) + '")'; document.getElementById('link-button-about').style.fill = '#f1b508'; // Hier wird die Iconfarbe direkt gesetzt }; img.onerror = function() { // Wenn die Grafik nicht geladen werden kann, verwende das Fallback-Icon document.getElementById('link-button-about').style.listStyleImage = 'url("chrome://global/skin/icons/warning.svg")'; document.getElementById('link-button-about').style.fill = 'red'; // Hier wird die Iconfarbe direkt gesetzt }; })();
Oder dieses:
JavaScript
Alles anzeigen// JavaScript Document // aboutabout-button.uc.js (function() { var css =` #aboutabout-ToolBarButton > image { display: none !important; } #aboutabout-ToolBarButton > label { display: flex !important; background-color: lightgreen !important; color: red !important; outline: 1px solid red !important; outline-offset: -1px !important; } #aboutabout-ToolBarButton:hover > label { background-color: green !important; color: cyan !important; outline: 1px solid purple !important; outline-offset: -1px !important; } `; var sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService); var uri = makeURI('data:text/css;charset=UTF=8,' + encodeURIComponent(css)); sss.loadAndRegisterSheet(uri, sss.AUTHOR_SHEET); if (location != 'chrome://browser/content/browser.xhtml') return; try { CustomizableUI.createWidget({ id: 'aboutabout-ToolBarButton', 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: 'aboutabout-ToolBarButton', class: 'toolbarbutton-1 chromeclass-toolbar-additional', label: 'About:About', tooltiptext: 'About:About', /* style: 'list-style-image: ', */ //onclick: 'if (event.button == 0) { \ // openTrustedLinkIn("about:about", "tab");\ // }; ' }; for (var p in props) toolbaritem.setAttribute(p, props[p]); /* Fix1 */ //toolbaritem.addEventListener('click', event => { // if (event.button == 0) { // openTrustedLinkIn("about:about", "tab"); // } //}); /* Bis hier */ return toolbaritem; } }); } catch(e) { }; /* Fix 2 */ document.getElementById('aboutabout-ToolBarButton').addEventListener('click', event => { if (event.button === 0) { openTrustedLinkIn('about:about',"tab"); } }); /* Bis hier */ })();
Beide erstellen einen "Button" um den about-Dialog aufzurufen.
-
-
jizz Please complete your idea in a whole script.
Because I can't really do much with the code snippet.
-
Wenn Du die Spamnummern nicht selber sammeln möchtest, oder Du einfach nur neugierig bist,
kannst Du Dir ja mal dieses Projekt von Bernhard Haumacher anschauen!
Ich nutze es und bin nahe zu Spamfrei!PhoneBlock: Der Werbeblocker fürs Telefon
Aber Du kannst das Ding auch privat zu Hause selber betreiben!
https://hub.docker.com/r/phoneblock/answerbot
Klick Dich da mal durch! -
Zitronella AH! Jetzt verstehe ich
Also bei mir wird bei dem Link das Seitenicon angezeigt, das Lautsprechersymbol und der Titel.
Endet der Ton, wird nur das Lautsprechersymbol ausgeblendet, der Titel verbreitert sich, ABER der Tab bleibt in der Breite gleich!
Habe ich aber viele Tabs offen, ist es genau so, wie von Dir beschrieben -
2002Andreas Also habe ich es doch richtig vermutet, dass es um das Sperren von Spamanrufen geht?
-
Nur zu meinem Verständnis!
Kannst Du mir mal genau erklären, was das soll? Ich verstehe es nicht!
Was bezweckst Du mit diesem Skript? Spamanrufe blockieren?Um Spamanrufe zu blockieren, habe ich eine andere Lösung.
-
Zitronella Warum nagelst Du die Tabbreite nicht auf feste Werte fest?
Denn der Code oben lässt ja eine gewisse Variation der Breite zu. -
Horstmann Ich bin jetzt etwas irritiert.
Ist das Ironie oder Sarkasmus, oder was ganz anderes? -
jizz 私たちは日本語があまり得意ではないのだが?
You do know that we're not very good at Japanese here?
Is this what you mean? And this?
Übersetzung:So installieren Sie userchrome.js Methode 1: 1.
1. Speichern Sie die folgende Datei direkt unter dem Installationsordner der Anwendung (z. B. %ProgramFiles%\Mozilla Firefox)
117/install_folder/config.js2. Speichern Sie die folgende Datei direkt unter dem Installationsordner der Anwendung\defaults\pref
117/install_folder\defaults\pref\config-prefs.js
3. Erstellen Sie einen Chrome-Ordner direkt unter dem Profilordner (z. B. %APPDATA%\Mozilla\Firefox\Profiles\hogehoge.default) und speichern Sie die folgenden Dateien
139/userChrome.js, 135/userChrome.js oder 106/userChrome.js
72/userChrome.css, falls erforderlich
4. speichern Sie die erforderlichen Skriptdateien5. zur Sicherheit starten Sie es einmal mit der Option %ProgramFiles%\Mozilla Firefox\firefox.exe -purgecaches
-
Thanks jizz .
Here's the original script.But with which loader should it work?
-
An wen ist die Frage gestellt?
Ich find's gut und hätte sogar noch mehr "Einstellungen" per Variablen im Block "//Einstellungen Javascript =>" vorgenommen
und aus dem CSS rausgenommen.Das hier z.B.:
JavaScript/* Einstellungen CSS => #A Zaehler (Counter) anpassen (nur falls noetig), #B Feinabstimmung allgemein, #C Feinabstimmung Zentrierung Trennlinie, #D eigene Farben anpassen */
Ich hätte es per Variabel einstellen wollen.
Den Grund habe ich auch schon einmal genannt.
Niemand müsste dann irgendetwas am eigentlichen Code ändern!Und nur für den Fall, dass wir alle Varianten mit externem CSS einbinden wollen, ohne JS Optionen zu benutzen, das geht.
Ist auch sehr simpel.Mag sein, und ist gar nicht schwer. Mache ich ja auch per userChrome.css @import ....
und ich habe schon 32 CSS-Dateien! Wenn nun noch viele weiter hinzukommen,
wie unterscheide ich dann, welche zu Anpassungen des Firefox gehören und welche nur für Design in Skripten da sind?
Ok, gibt Möglichkeiten, ich habe mich bisher für eine entschieden!
Und ich werde mir nicht die Arbeit machen und Skripte von Alice oder unserem japanischen Freund auseinander zu klabustern,
nur damit CSS und JS strickt getrennt sind! -
Habe mir gerade so einige Skripte von alice0775 aber auch von Endor8.
Ich glaube, diese Diskussion bringt nichts!
Schaut Euch die verschiedenen Skripte an, dann werdet Ihr sehen, was ich meine.
Es bleibt alles, wie es ist.
Es wird von einigen Skripten dutzende individuell angepasste Versionen geben und wir werden daran nichts,
aber auch gar nichts ändern.