Da rennst du bei mir offene Türen ein..
Beiträge von Boersenfeger
-
-
Richtig! Die Frage ist ja, wie Skript und Code so zusammengeschrieben werden, das alle Tabs abgerundet sind und die grüne Ecke in ungelesenen ebenfalls zu sehen ist.
-
Wobei zu bedenken ist, das auch Windows 10 ab Herbst nicht mehr unterstützt wird.
-
Ja, das hatte Sö
ren bereits berichtet. Aber auch nachdem ich diese Zeile entfernt habe, tat sich dann ein neues Problem auf. Guckst du in diesen Thread
-
Das war vorher auch schon so, es sollen aber aller Tabs so abgerundet sein. Guckst du oben in Beitrag 1.
-
Vielen Dank fürs Verschieben 2002Andreas
Zur Erklärung: In diesem Thread wurde der Vorschlag eingebracht, dass man die nicht gelesenen Tabs mit einer grünen Ecke auf Basis eines Scripts ausstatten kann. Daraus ergab sich dann die obige Frage. Kann da jemand beides zusammenfrickeln?
Edit: Nee das ergibt keine Änderung!
CSS
Alles anzeigen/* Tabs rund und farbig */ /* Angaben für die TAB-Leiste */ /* TAB bei bei angewähltem TAB (aktiv): */ /* Hintergrundfarbe, Rahmen,*/ /* Schriftfarbe. */ /* .tabbrowser-tab:is([visuallyselected], [multiselected]) > .tab-stack > .tab-background { background: red !important; border-radius: 18px !important; margin-top: 2px !important; border: none !important; color: black ! important; margin-bottom: 0 !important; } .tab-background { outline: none !important; } */ /* Schliessen-Button nur wenn angewählt */ tab:not([selected]) .tab-close-button { display: none !important; } /* Schriftgröße Tabs */ .tab-text { font-size: 18px !important; } /* Damit wird der Tabtext am Ende schleichend ausgeblendet */ .tab-label-container[textoverflow][labeldirection=ltr]:not([pinned]), .tab-label-container[textoverflow]:not([labeldirection]):not([pinned]):-locale-dir(ltr) { direction: ltr; mask-image: linear-gradient(to left, transparent, black 1em) !important; } /* Doppelte Schliessung ausblenden */ #TabsToolbar > .titlebar-buttonbox-container { display:none !important; } .tabbrowser-tab[visuallyselected] .tab-label { font-weight: bold !important; } #TabsToolbar .tabbrowser-tab:not([selected]) { border-radius: 16px !important; height: 22px ! important; margin-top: 5px !important; padding: 0 !important; color: black ! important; } /* Tab-Icon etwas größer, * links weniger, unten etwas mehr Abstand zum TAB-Rand */ #TabsToolbar .tab-icon-image { height: 20px !important; width: 20px !important; margin-left: -2px !important; margin-bottom: 2px !important; } /* Tab-Schließen-Button: * Rechts weniger Abstand zum TAB-Rand, etwas größer, * Textfarbe (Kreuz) * Hintergrundfarbe, an den Eckenradius des Buttons angepasst */ #TabsToolbar .tab-close-button { margin-right: -6px !important; font-weight: bold !important; color: black !important; } #TabsToolbar .tab-close-button .toolbarbutton-icon { height: 6px !important; width: 6px !important; background-color: red !important; border-radius: 12px !important; } /* Aktiver Tab breiter */ .tabbrowser-tab:not([pinned]):not([selected]) { min-width: 185px !important; min-height: 30px !important; max-height: 40px !important; flex-grow: 0 !important; } .tabbrowser-tab:not([pinned])[selected] { min-width: 200px !important; min-height: 30px !important; max-height: 40px !important; flex-grow: 0 !important; } /* Lautsprechersymbol größer und ohne Hintergrund */ .tab-audio-button[soundplaying] { --button-icon-fill: blue !important; scale: 1.8 !important; border: none !important; --button-background-color-ghost-hover: transparent !important; } /* Lautsprechersymbol blauviolett bei Sound */ [soundplaying] { fill: blueviolet !important; } /* Lautsprechersymbol gelb bei stumm */ .tab-audio-button[muted] { --button-icon-fill: yellow !important; scale: 1.8 !important; border: none !important; --button-background-color-ghost-hover: transparent !important; } /* Tab Beschriftung mittig */ .tab-content { display: flex !important; margin-top: -1px !important; justify-content: center !important; align-items: center !important; } #TabsToolbar .tabbrowser-tab[selected] .tab-content { margin-top: 2px !important; } .tabbrowser-tab { min-height: 40px !important; max-height: 40px !important; } .tab-label-container { margin: auto !important; } .tabbrowser-tab > .tab-stack > .tab-content > .tab-close-button { padding: 0 !important; width: 17px !important; height: 17px !important; } #TabsToolbar .toolbarbutton-1 { min-height: 34px !important; margin-top: 2px !important; margin-bottom: 2px !important; } #TabsToolbar .tabbrowser-tab:not([selected]) { min-height: 34px !important; border: 1px solid #B2B2B2 !important; } #TabsToolbar .toolbarbutton-1 > image { padding: 2px 4px !important; } /* Rahmen um die Tableiste durchsichtig */ #TabsToolbar { border: 0.2px solid transparent !important; } #TabsToolbar:hover { border: 0.2px solid transparent !important; } /* Fortschrittsanzeige für das Laden der Seite */ .tabbrowser-tab:not([usercontextid]) > .tab-stack > .tab-background > .tab-context-line { opacity: 0; background-color: #00ff00; height: 6px; margin-inline: 8px; margin-top: 2px; border-radius: 90px; } .tabbrowser-tab:is([busy], [progress]) > .tab-stack > .tab-background > .tab-context-line { opacity: 1; transform-origin: left center; animation: 2s ease-in-out scale; } .tabbrowser-tab[bursting] > .tab-stack > .tab-background > .tab-context-line { transition: opacity 2s ease-out; } @keyframes scale { 0% {transform: scaleX(0);} 100% {transform: scaleX(1);} } /* Tab Pluszeichen einfärben*/ #tabs-newtab-button { color: red !important; font-size: 100px !important; font-weight: bold !important; } /* Tabs mittig */ #tabbrowser-tabs:not([overflow], [orient="vertical"]) .tabbrowser-tab:nth-child(1 of :not([pinned], [hidden])) { margin-left: auto !important; } #tabbrowser-tabs:not([overflow], [orient="vertical"]) #tabbrowser-arrowscrollbox-periphery { margin-right: auto !important; }
Hier mal der ganze CSS, der sich mit den Tabs beschäftigt, der entsprechende Teil Zeile 9 bis 20 ist ausdokumentiert.
-
Habe jetzt Version 5.8 getestet und das funktioniert für mich!
-
Jetzt klappt es, Danke!
Ich habe die Tabs in einem CSS angepasst, sie sind rund; mit Einsatz des Scripts sind allerdings die nicht gelesenen Tabs nicht rund. wie kann ich das Script und den CSS zusammenbringen?
CSS
Alles anzeigen.tabbrowser-tab:is([visuallyselected], [multiselected]) > .tab-stack > .tab-background { background: red !important; border-radius: 18px !important; margin-top: 2px !important; border: none !important; color: black ! important; margin-bottom: 0 !important; } .tab-background { outline: none !important; }
CSS
Alles anzeigen/* Ungelesen Tabs mit grüner Ecke */ (async (url) => { if (location != url) return; let css =` #TabsToolbar .tabbrowser-tab[notselectedsinceload="true"] { border-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAcCAYAAABh2p9gAAAACXBIWXMAAAsSAAALEgHS3X78AAABQklEQVR42q3TP0vDQBjH8atDhQ4uFhSnTg66FieHuljQRUpAbZI2bZqmSf+kQehbEN+Fr6fuvgM7+w7i84M7OI7YHPQJfAkcTz5HEk4URSE4E82zixp1TT1Sr7IxNaJcbW0TxcmzqLposP3Uc/rb7ZdDO3RkXeqeulNrNBdk+ds73W+qQOdnt3ugh06pI62aMTdsfDcKut/ijT5bv8JMDbr08JUJlGw8ACjRLtXaB15afBpfgRLtUedloGcJejooUfy0ExP0LUHXBCUaUnUdHBwCSjTVwaEl6PwHSnSjBgNLsL0PRC997wODI0vwuOREBfJU+WoNg2MbsOqCAQtgyAiGACeM4ARgxAhGAKeM4BRgzAjGAGeM4AxgwggmAFNGMAU4ZwTnABeM4ALgkhFcAlwxgiuAGSOYAVwzgmuAOSOY/wGB0oICMFHRdQAAAABJRU5ErkJggg==") 4 10 3 3 / 4px 10px 0px 3px stretch !important; } `; let sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); let uri = "data:text/css;charset=utf-8," + encodeURIComponent(css); sss.loadAndRegisterSheet(Services.io.newURI(uri), sss.AGENT_SHEET); gBrowser.tabContainer.addEventListener("TabSelect", e => e.target.setAttribute("notselectedsinceload", "false")); })("chrome://browser/content/browser.xhtml");
-
lenny2 Soll das ein CSS oder ein Script sein?
Beides funktioniert bei mir nicht!?
-
-
-
-
Nee, ändert nichts
-
Nachfolgendes Script funktioniert schon länger nicht mehr. Ein mit STRG D gespeichertes Lesezeichen kann ich zwar im Auswahlmenü einem Ordner zielgerichtet zuordnen. Abgelegt wird es aber im Lesezeichenmenü am Ende. Kann man das Script heilen?
Seitens des Entwicklers gibts kein Hinweis mehr auf seiner HP auf dieses Script.
JavaScript
Alles anzeigen// ==UserScript== // @name Add Bookmark Here // @namespace about:userchromejs/addbookmarkhere // @description add "Add Bookmark Here" contextmenu in places menu // @include chrome://browser/content/browser.xhtml // @include chrome://browser/content/places/places.xhtml // @shutdown window.AddBookmarkHere.uninit() // @author Ryan, zbinlin // @homepage http://mozcp.com // @version 0.0.3 // ==/UserScript== /** * ******************************** Changelog ******************************** * version: 0.0.3 * * Kompatibilitäts - Probleme mit neueren Firefox-Versionen behoben. * * Achtung: nur in Firefox 100 getestet! * version: 0.0.2 * * Kompatibel mit Firefox 21+ * * version: 0.0.1 * * Initialisierung * *************************************************************************** */ "use strict"; (function () { if (window.AddBookmarkHere) return; var AddBookmarkHere = { PARENT_NODE: "placesContext", REF_NODE: "", init: function () { var parentNode = document.getElementById(this.PARENT_NODE); if (!parentNode) return; var self = this; window.addEventListener("unload", function _(e) { window.removeEventListener("unload", _, false); self.uninit(); }, false); var refNode; if (this.REF_NODE !== "") { var refNode = document.getElementById(this.REF_NODE); } this.addContextMenu(parentNode, refNode); /* var node = document.getElementById("placesContext_createBookmark"); if (!node) return; node.removeAttribute("forcehideselection"); node.setAttribute("selection", "any"); node.removeAttribute("command"); node.setAttribute("oncommand", "AddBookmarkHere.addBookmark(event);"); */ }, addContextMenu: function (parentNode, afterNode) { var menuitem = document.createXULElement("menuitem"); menuitem.id = "placesContext_add:bookmark"; menuitem.setAttribute("label", Services.locale.appLocaleAsBCP47.includes("de") ? "Lesezeichen hier hinzufügen" : "Add Bookmark Here"); menuitem.setAttribute("accesskey", "h"); menuitem.setAttribute("selection", "any"); menuitem.setAttribute("class", "menuitem-iconic"); menuitem.setAttribute("style", "list-style-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0iY29udGV4dC1maWxsIiBmaWxsLW9wYWNpdHk9ImNvbnRleHQtZmlsbC1vcGFjaXR5IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNOC44MDgwMiAyLjEwMTc5QzguNDc3ODkgMS40MzI4NyA3LjUyNDAzIDEuNDMyODcgNy4xOTM5IDIuMTAxNzlMNS42NzI4MSA1LjE4Mzg0TDIuMjcxNTYgNS42NzgwN0MxLjUzMzM2IDUuNzg1MzQgMS4yMzg2MSA2LjY5MjUxIDEuNzcyNzcgNy4yMTMyTDQuMjMzOTQgOS42MTIyNEwzLjY1Mjk0IDEyLjk5OTdDMy41MjY4NCAxMy43MzUgNC4yOTg1MyAxNC4yOTU2IDQuOTU4NzkgMTMuOTQ4NUw4LjAwMDk2IDEyLjM0OTFMOC40ODI5IDEyLjYwMjVDOC4xODU5NyAxMi4zMjg0IDggMTEuOTM1OSA4IDExLjVDOCAxMS40NDQ2IDguMDAzIDExLjM5IDguMDA4ODQgMTEuMzM2MkM3Ljg2MjM2IDExLjMzNDkgNy43MTU2NCAxMS4zNjk0IDcuNTgyMTUgMTEuNDM5NUw0LjY3MjggMTIuOTY5MUw1LjIyODQzIDkuNzI5NDdDNS4yNzg1MSA5LjQzNzUxIDUuMTgxNzEgOS4xMzk2MSA0Ljk2OTYgOC45MzI4NUwyLjYxNTg4IDYuNjM4NTRMNS44Njg2NCA2LjE2NTg5QzYuMTYxNzggNi4xMjMyOSA2LjQxNTE5IDUuOTM5MTggNi41NDYyOCA1LjY3MzU1TDguMDAwOTYgMi43MjYwNUw4LjczMzUxIDQuMjEwMzZDOC45NTc4MiA0LjA3Njc1IDkuMjE5OTUgNCA5LjUgNEg5Ljc0NDg1TDguODA4MDIgMi4xMDE3OVpNOS41IDVDOS4yMjM4NiA1IDkgNS4yMjM4NiA5IDUuNUM5IDUuNzc2MTQgOS4yMjM4NiA2IDkuNSA2SDE0LjVDMTQuNzc2MSA2IDE1IDUuNzc2MTQgMTUgNS41QzE1IDUuMjIzODYgMTQuNzc2MSA1IDE0LjUgNUg5LjVaTTkuNSA4QzkuMjIzODYgOCA5IDguMjIzODYgOSA4LjVDOSA4Ljc3NjE0IDkuMjIzODYgOSA5LjUgOUgxNC41QzE0Ljc3NjEgOSAxNSA4Ljc3NjE0IDE1IDguNUMxNSA4LjIyMzg2IDE0Ljc3NjEgOCAxNC41IDhIOS41Wk05LjUgMTFDOS4yMjM4NiAxMSA5IDExLjIyMzkgOSAxMS41QzkgMTEuNzc2MSA5LjIyMzg2IDEyIDkuNSAxMkgxNC41QzE0Ljc3NjEgMTIgMTUgMTEuNzc2MSAxNSAxMS41QzE1IDExLjIyMzkgMTQuNzc2MSAxMSAxNC41IDExSDkuNVoiLz4KPC9zdmc+Cg==)"); menuitem.addEventListener("command", this, false); if (typeof refNode !== "undefined") { parentNode.insertBefore(menuitem, afterNode); } else { parentNode.appendChild(menuitem); } }, handleEvent: function (e) { var popupNode = e.currentTarget.parentNode.triggerNode; if (!popupNode) return; var view = PlacesUIUtils.getViewForNode(popupNode); if (!view) return; var bookmarks = Cc["@mozilla.org/browser/nav-bookmarks-service;1"].getService(Ci.nsINavBookmarksService); var selectedNode = view.selectedNode; var iid, aid; if (selectedNode) { if (PlacesUtils.nodeIsFolder(selectedNode) /* Firefox 21+ inkompatibel && !PlacesUtils.nodeIsLivemarkContainer(selectedNode) && !PlacesUtils.isReadonlyFolder(selectedNode) */) { iid = selectedNode.itemId; aid = e.shiftKey ? 0 : bookmarks.DEFAULT_INDEX; } else { iid = bookmarks.getFolderIdForItem(selectedNode.itemId); var id = bookmarks.getItemIndex(selectedNode.itemId); aid = e.shiftKey ? id : id + 1; } } else { iid = view.result.root.folderItemId; aid = e.shiftKey ? 0 : bookmarks.DEFAULT_INDEX; }; var uri = Services.io.newURI(gBrowser.currentURI.spec, null, null); var title = gBrowser.contentTitle bookmarks.insertBookmark(iid, uri, aid, title); }, uninit: function () { var self = this; try { var menuitem = document.getElementById("placesContext_add:bookmark"); menuitem.removeEventListener("command", self, false); menuitem.remove(); delete window.AddBookmarkHere; } catch (ex) { } } }; AddBookmarkHere.init(); window.AddBookmarkHere = AddBookmarkHere; })();
-
hier mit seinem Code (Zeile 28, nicht in Nightly getestet):
Jetzt schon, da ich quasi nur mit Nightly arbeite!
Vielen Dank an Alle!
-
Danke!
Ich habe jetzt folgenden Code übernommen und er funktioniert. Sind da jetzt noch irgendwelche Codebereinigungen nötig?
Code
Alles anzeigen//// ContextTranslate DeepL //// ///https://github.com/ardiman/userChrome.js/tree/master/contexttranslate/// // ex ContextTranslate.uc.js/// // modifiziert by universum 123// // modifiziert von Horstmann und Speravir 03_25 https://www.camp-firefox.de/forum/thema/139144-deepl-context-script-funktioniert-nicht-mehr-in-nightly/?postID=1268793#post1268793// (function () { let translate = function () { let browserMM = gBrowser.selectedBrowser.messageManager; browserMM.addMessageListener('getSelection', function listener(message) { let t = (message.data !== ''); let e = (document.charset || document.characterSet); if (t) { openWebLinkIn('https://www.deepl.com/translator#en/de/' + encodeURIComponent(message.data), 'tab'); } else { openWebLinkIn('https://www.deepl.com/translate?u=' + encodeURIComponent(gBrowser.currentURI.spec) + '&hl=de-DE&ie=' + e + '&sl=auto&tl=de-DE', 'tab'); }; browserMM.removeMessageListener('getSelection', listener, true); }); browserMM.loadFrameScript('data:,sendAsyncMessage("getSelection", content.document.getSelection().toString())', true); } let menuitem = document.createXULElement('menuitem'); menuitem.id = 'context-deepltranslate'; menuitem.setAttribute('label', 'Übersetzen'); menuitem.setAttribute('tooltiptext', 'Mit DeeplTranslate übersetzen'); // Ausgeschaltet //menuitem.setAttribute('oncommand', '(' + translate.toString() + ')()'); menuitem.classList.add('menuitem-iconic'); //Wer kein Icon möchte kann die nächsten beiden Zeilen auskommentieren/löschen menuitem.style.listStyleImage = 'url("https://www.deepl.com/favicon.ico")'; menuitem.style.listStyleImage = ' url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAACNwAAAjcB9wZEwgAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAGZSURBVDiNjZKxaxRBFMZ/b2ZHbWITUxkRC4PnBUW0k1gkoFlMYmIR8R+w0UZBFAvtLAMS0ipC0guCd0GOa23EJGTPkBRCSCNHKiEgMzvPwmjCuiv3lft97zff7BuhQraWTouJLwE0mmf518a7spwUPxwZvlmLms8B4wWrLZhHPvuwUg44N9afGPcc4T5gK4pFgSUv/jHrre8HgKHJE4nzHWBgn/sZdBuYqQB1Q+5rbLR2DUBy1J89GIbEmNmQNW8DqxWAgcS5IQBT5vqYP3H1Gw9AHyosAKECVA4QuKfIPMhHVKygV4OVU8ByT4BDsiI6rWpusdbYUdgpBpLSMeGTRLYx2o5q9kT0ja2P3xU401ODQJz1neYdVRkT9C1gyob/Ngg/3VbifJf9TVg1L2Q43UC1eo3eb8KfB7O7uRf7T782Yo8hXBG4DFwvaRgFFoP4GTqt7u/bFuTOp5dU9BUw8u/BOhqy5fZ//4HvNL6ErHlNkSmFb4e9YM1WMV+5xjxrvM+P99VBngI/qnK96UI66OrpEhcnThatXx/tiqJJdDA6AAAAAElFTkSuQmCC")'; let refItem = document.getElementById('context-inspect'); refItem.parentNode.insertBefore(menuitem, refItem); // Fix? document.getElementById('context-deepltranslate').addEventListener('click', event => { translate (); }); })();
-
Gerd Poppe, Bürgerrechtler und später Bundestagsabgeordneter von Bündnis 90/ Die Grünen ist im Alter von 84 Jahren kurz nach seinem Geburtstag gestorben. Er stand für den gewaltfreien Widerstand in der DDR und war neben Bärbel Bohley einer der Aktivisten, die nicht aus dem kirchlichen Umfeld stammte. RIP und danke!
-
-
So auf Anhieb sehe ich, dass in Zeile 27 noch der Inlinehandler oncommand verwendet wird. Das muss in einen Ausdruck mit addEventListener umgebaut werden.
Hast du da einen Ansatz?
BTW: Die Erweiterung funktioniert sehr gut, ggf. nutze ich dann diese.
-
Danke, das hatte ich gelesen. Dort meldet Mira_Belle am Schluss, dass die Erweiterung wieder funktioniert.
Könnte man das Script anpassen oder wäre dann die Erweiterung doch besser? Die BETA-Version des Übersetzers innerhalb Nightly funktioniert zwar auch, dauert aber lang.