Beiträge von BrokenHeart
-
-
Scheint also alles einwandfrei dann zu sein.
Andreas, noch eine Bitte:
Du hast doch sicher auch die 102ESR. Könntest du mal das Skript aus #48 dort testen und dann das Skript aus #54? Was zeigt er dir bei beiden an an?
In dem Skript #48 zeigt er hier nichts an,
mit dem Skript aus #54 das hier:
Danke im Voraus...
-
Hallo zusammen, ach, Herrje!
Also für die Leute, bei denen es funktioniert:
Gern geschehen...
Für die Leute, bei denen es nicht läuft:
Ich hatte jetzt das gleiche Problem in der 102.13.0 ESR Version. Keine Fehlermeldung im Log, einfach nur keine Anzeige.
Ich habe es dann mal debuggt und festgestellt, dass jede einzelne Anweisung korrekt ausgeführt wird, aber bei der Zeile
label.setAttribute('data-value', strCountOut); keine Ausgabe erfolgt. Wenn ich einen anderen "Elternknoten" benutze, dann zeigt er etwas an. Es wäre gut, wenn diese Leute mal dieses geänderte Skript testen würden (nicht wundern, im Skript befinden sich massig Log-Meldungen, die Infos ausgeben; die Ausgabe im Lesezeichen-Menü erfolgt hierbei rechtsbündig, vor dem Pfeil):
JavaScript
Alles anzeigen(function() { if (!window.gBrowser) return; function setFunction() { console.log( "---------------------------Test: Position-0" ); const css =` .countClass::after { content: attr(data-value); /*content: " 978347234 "; */ color: red; } `; const sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService); const uri = Services.io.newURI('data:text/css,' + encodeURIComponent(css)); sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET); let persToolBar = document.getElementById('PersonalToolbar'); persToolBar.addEventListener('popupshowing', function onPopupShowing(aEvent) { console.log( "---------------------------Test: Position-1" ); let popup = aEvent.originalTarget; for (let item of popup.children) { console.log( "---------------------------Test: Position-2" ); if (item.localName != 'menu' || item.id?.startsWith('history')) continue; setTimeout(() => { console.log( "---------------------------Test: Position-3" ); let itemPopup = item.menupopup; itemPopup.openPopup(); itemPopup.hidePopup(); let menuitemCount = 0; let menuCount = 0; for (let subitem of itemPopup.children) { if (subitem.classList.contains('bookmark-item') && !subitem.disabled && !subitem.hidden) { if (subitem.localName == 'menuitem') { menuitemCount++; } else if (subitem.localName == 'menu') { menuCount++; } } } console.log( "---------------------------Test: (MenuCount:" + menuCount + "/(MenuItemCount:" + menuitemCount + ")" ); let label = item.childNodes[3]; //label.menu-iconic-text label.classList.add('countClass'); let strCountOut = " (" + menuCount + "/" + menuitemCount + ")" label.setAttribute('data-value', strCountOut); console.log( "---------------------------Test: Position-4" ); }, 100); } }); } setTimeout(function() { setFunction(); },50); })();
Nur in Menü - Lesezeichen tut sich nichts.
Die Funktionalität besitzt das Skript von mir (noch) nicht, da ja nur die Lesezeichenleiste abgefragt wird:
persToolBar.addEventListener('popupshowing', function onPopupShowing(aEvent)
-
Bei mir funktioniert das Skript aus #34 leider auch nicht!
Und das Skript aus #14 läuft? oder geht das auch nicht?
Was mir aber aufgefallen ist, Zeile 43 die Variable position wird nirgendwo aufgerufen!
Ooops, das stimmt, danke
. Ist vom Testen übriggeblieben
...
Könnte es daran liegen?
Unwahrscheinlich, weil dann in der Konsole auch etwas stehen müsste, aber es gehört natürlich wieder entfernt.
Hier noch mal das Skript, ohne die Zeile:
Code
Alles anzeigen(function() { if (!window.gBrowser) return; function setFunction() { const css =` .countClass::after { content: attr(data-value); color: red; } `; const sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService); const uri = Services.io.newURI('data:text/css,' + encodeURIComponent(css)); sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET); let persToolBar = document.getElementById('PersonalToolbar'); persToolBar.addEventListener('popupshowing', function onPopupShowing(aEvent) { let popup = aEvent.originalTarget; for (let item of popup.children) { if (item.localName != 'menu' || item.id?.startsWith('history')) continue; setTimeout(() => { let itemPopup = item.menupopup; itemPopup.openPopup(); itemPopup.hidePopup(); let menuitemCount = 0; let menuCount = 0; for (let subitem of itemPopup.children) { if (subitem.classList.contains('bookmark-item') && !subitem.disabled && !subitem.hidden) { if (subitem.localName == 'menuitem') { menuitemCount++; } else if (subitem.localName == 'menu') { menuCount++; } } } let label = item.childNodes[1]; //label.menu-iconic-text label.classList.add('countClass'); let strCountOut = " (" + menuCount + "/" + menuitemCount + ")" label.setAttribute('data-value', strCountOut); }, 100); } }); } setTimeout(function() { setFunction(); },50); })();
omar1979 :
Also starten tut er schon mal korrekt. Jetzt wäre es natürlich interessant, ob sich in der Konsole was tut, wenn du die Lesezeichen-Ordner mal öffnest, so dass die entsprechenden Events im Skript auch aktiviert werden.
-
Keine Ahnung wo ich da schauen muss. Sorry.
Nachdem Firefox gestartet wurde [STRG+SHIFT+J] drücken.
Nein habe kein Scripte entfernt und keine Ahnung ob da ein AddOn dazwischen funkt.
Das kann man eigentlich auch nur testen, in dem man alle anderen Skripte eben mal temporär entfernt z.B. umbenennt z.B. "xxxx.uc.js___" oder verschiebt. Auch ein AddOn kann man temp. deaktivieren, dann weiß man , ob es dazwischen funkt.
Falls überlesen:
Erhöhe in meinem Skript mal die Werte in Zeile 52 und Zeile 59. Zum Testen ruhig mal auf '1000'!
-
Das läuft einwandfrei...
Wie gesagt, dann weiß ich auch nicht weiter. Ich kann es eben nur auf Win10 testen. Es scheint ja kein prinzipielles Problem mit dem OS zu geben...
Hast du auch mal die 'userChromeShadow.css' ausgeschaltet, falls von dir benutzt?
Erhöhe in meinem Skript mal die Werte in Zeile 52 und Zeile 59. Zum Testen ruhig mal auf '1000'!
-
Jetzt direkt hinter dem Ordnernamen: Besser?
JavaScript
Alles anzeigen(function() { if (!window.gBrowser) return; function setFunction() { const css =` .countClass::after { content: attr(data-value); color: red; } `; const sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService); const uri = Services.io.newURI('data:text/css,' + encodeURIComponent(css)); sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET); let persToolBar = document.getElementById('PersonalToolbar'); persToolBar.addEventListener('popupshowing', function onPopupShowing(aEvent) { let popup = aEvent.originalTarget; for (let item of popup.children) { if (item.localName != 'menu' || item.id?.startsWith('history')) continue; setTimeout(() => { let itemPopup = item.menupopup; itemPopup.openPopup(); itemPopup.hidePopup(); let menuitemCount = 0; let menuCount = 0; for (let subitem of itemPopup.children) { if (subitem.classList.contains('bookmark-item') && !subitem.disabled && !subitem.hidden) { if (subitem.localName == 'menuitem') { menuitemCount++; } else if (subitem.localName == 'menu') { menuCount++; } } } let position = document.getElementsByClassName('label.menu-iconic-text')[0]; let label = item.childNodes[1]; //label.menu-iconic-text label.classList.add('countClass'); let strCountOut = " (" + menuCount + "/" + menuitemCount + ")" label.setAttribute('data-value', strCountOut); }, 100); } }); } setTimeout(function() { setFunction(); },50); })();
Steht bei euch eine Fehlermeldung in der Konsole bzgl. dieses Skripts?
Habt ihr mal alle sonstigen Skripte entfernt? Vielleicht kommt ja auch ein spezielles AddOn als Störfaktor in Frage?
Läuft bei euch dieses (Original-)Skript? Wenn ja, dann bin ich wirklich überfragt und ratlos...
JavaScript
Alles anzeigen(function() { if (!window.gBrowser) return; function setFunction() { PlacesViewBase.prototype._onPopupShowing = function PVB__onPopupShowing(aEvent) { let popup = aEvent.originalTarget; this._ensureMarkers(popup); if ("_delayedRemovals" in popup) { while (popup._delayedRemovals.length) { popup.removeChild(popup._delayedRemovals.shift()); } } if (popup._placesNode && PlacesUIUtils.getViewForNode(popup) == this) { if (!popup._placesNode.containerOpen) { popup._placesNode.containerOpen = true; } if (!popup._built) { this._rebuildPopup(popup); } this._mayAddCommandsItems(popup); } /* original function end */ for (let item of popup.children) { if (item.localName != 'menu' || item.id?.startsWith('history')) continue; setTimeout(() => { let itemPopup = item.menupopup; itemPopup.openPopup(); itemPopup.hidePopup(); let menuitemCount = 0; let menuCount = 0; for (let subitem of itemPopup.children) { if (subitem.classList.contains('bookmark-item') && !subitem.disabled && !subitem.hidden) { if (subitem.localName == 'menuitem') { menuitemCount++; } else if (subitem.localName == 'menu') { menuCount++; } } } if (!item.labelOriginal) { item.labelOriginal = item.label; } item.labelSuffix = ' (' + menuCount + '/' + menuitemCount + ')'; item.label = item.labelOriginal + item.labelSuffix; }, 100); } popup.addEventListener('popuphidden', function onPopuphidden(event) { if (event.target != this) return; popup.removeEventListener('popuphidden', onPopuphidden); for (let item of popup.children) { if (item.localName == 'menu') { if (item.labelOriginal) { item.label = item.labelOriginal; item.labelOriginal = undefined; } } } }); } } setTimeout(function() { setFunction(); },50); })();
-
Funktioniert hier ohne Probleme.
Du bist mein Held
! Eine gute Nachricht für mich, aber eine schlechte für grisu2099 , dann muss der Fehler bei dir irgendwo anders verborgen sein. Alles richtig kopiert?
Wäre schön, wenn Du es wieder vor das ">" zaubern könntest.
Danke fürs Testen! Ich schau, was ich machen kann...
-
Auch da keine Probleme.
Danke fürs Testen.
Hat nicht FuchsFan Win11? H-I-L-F-E!!!
Funzt hier mit 115, allerdings auf Linux.
Auch dir Danke fürs Testen...
-
Funktioniert leider weder in Version 115 noch in der Nightly
Starte bitte einmal im Fehlerbehebungsmodus und dann wieder normal. Liegt wahrscheinlich wieder am SkriptCache.
Beide aktuelles Win11
Dass es daran liegt, kann ich mir zwar nicht vorstellen, wäre aber gut, wenn jemand anderes das auf Win11 nochmal testen würde...ich habe nur Win10.
-
Ich persönlich fände es hinter dem Ordnernamen schöner - aber wenn es nicht anders geht, müßte ich damit anfreunden.
OK. Muss ich dann später noch etwas rumschrauben, wird sicher gehen...
Jetzt habe ich mal eine erste Version zum Testen (Anzeige hinter dem Pfeil-Icon). Die CSS-Einstellungen können ab Zeile 13 vorgenommen werden und in Zeile 47 kann die textuelle Ausgabe beeinflusst werden.
Den Patch über die Prototype-Funktion in dem Original-Skript habe ich entfernt (auch aus Sicherheitsgründen) und das Löschen der Änderung beim Schließen des Popups ist jetzt auch nicht mehr nötig.
JavaScript
Alles anzeigen(function() { if (!window.gBrowser) return; function setFunction() { const css =` .countClass::after { content: attr(data-value); color: red; font-size: 14px; font-weight: 800; } `; const sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService); const uri = Services.io.newURI('data:text/css,' + encodeURIComponent(css)); sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET); let persToolBar = document.getElementById('PersonalToolbar'); persToolBar.addEventListener('popupshowing', function onPopupShowing(aEvent) { let popup = aEvent.originalTarget; for (let item of popup.children) { if (item.localName != 'menu' || item.id?.startsWith('history')) continue; setTimeout(() => { let itemPopup = item.menupopup; itemPopup.openPopup(); itemPopup.hidePopup(); let menuitemCount = 0; let menuCount = 0; for (let subitem of itemPopup.children) { if (subitem.classList.contains('bookmark-item') && !subitem.disabled && !subitem.hidden) { if (subitem.localName == 'menuitem') { menuitemCount++; } else if (subitem.localName == 'menu') { menuCount++; } } } item.classList.add('countClass'); let strCountOut = "[" + menuCount + "/" + menuitemCount + "]" item.setAttribute('data-value', strCountOut); }, 100); } }); } setTimeout(function() { setFunction(); },50); })();
-
Wäre es sehr schlimm, wenn die Anzeige hinter dem Pfeil erscheint? Geht sicher auch direkt hinter dem Item-Label, aber dann müsste ich noch weiter herumexperimentieren...("X/Y" sind nur vorläufige Platzhalter).
Eigentlich finde ich es dort fast sinniger, da sich die Anzahl der Ordner/Items ja auf das noch zu öffnende Popup bezieht.
-
Schade, daß hier niemand eine Lösung anbieten kann...
Geduld...
. Dafür muss, wie Mira_Belle schon richtig bemerkt hat, dass ganze Skript umgeschrieben werden.
Wenn ich das richtig verstehe, hat das etwas damit zu tun, dass erst der Text gelöscht wird und danach
durch den neu erzeugten Text inkl. der Anzeige "Ordner/Lesezeichen je Ordner" ersetzt wird.
Genau richtig. Das ist der Grund, weswegen der Eintrag('Label') nur als Ganzes angepasst werden kann. Man muss also zwei getrennte Einträge machen: normales Label + Anzahl der Ordner/Items. Ich hatte mir das so vorgestellt, dass man über ::after und content die "ZusatzInfos" eben nur temporär (ohne DOM-Eintrag) anzeigen lässt. Ist aber nicht ganz einfach, dass alles in JavaScript einzubinden, da es dafür keine Befehle gibt. Hab aber eine mögliche Lösung gefunden, die ich noch ausprobieren muss. Mal schauen, ob das was wird...
-
Hallo phloo,
so ganz einfach kann man diese "Unsauberkeit" gar nicht lösen, zumindest nicht nur mit CSS. Das Problem wird in erster Linie durch die Funktion gBrowser.selectedTab.scrollIntoView(); verursacht. Damit wird, wie der Name schon sagt, ein neuer (selektierter) Tab in den sichtbaren Bereich gebracht. Das passiert dann automatisch und ist sehr praktisch und einfach in der Anwendung. Allerdings scrollt er eben nicht immer an die Position, die die Abstände zur oberen und unteren Kante des sichtbaren Bereichs gleich lässt. Das Problem sollte eigentlich nur dann auftreten, wenn eine Scrollbar erscheint, wenn mehr Zeilen angezeigt werden müssten, als Platz dafür vorhanden ist. Ist das nicht der Fall, sieht es (zumindest mit den Default-Einstellungen) so wie auf dem Screenshot aus. Dort ist am unteren Seite der Tabs auch noch ein Schatten, was dann aber eben optisch die "Lücke" schließt.
Änderungen müssten an der Höhe der Scrollbox (bei mir Zeile 630) durchgeführt werden, die Funktion 'scrollIntoView()' müsste durch manuelle Berechnungen ersetzt werden und dann müsste wahrscheinlich auch noch das Scrollverhalten angepasst werden.
Sorry, aber das alles ist mir für diese Version des Skripts viel zu aufwendig. Wenn du eine einfachere Lösung hast, immer her damit...
-
Danke für die Infos!
Es freut mich, dass es diesmal außer den unternehmensspezifischen Features anscheinend keine technischen Unterschiede mehr zur Release-Version gibt
. Ich werde wieder warten, bis ich am 26. September automatisch auf die neue Version upgedatet werde. Da bei mir alle individuellen Änderungen eh schon auf der 115 laufen, wird es dann wohl auch keine Anpassungsprobleme geben.
-
etwas schneller schon, wie schon geschrieben, aber alle Tabs scheinen neu geladen worden zu sein, einer nach dem anderen.
Nach einem Neustart von Firefox?
Das sollte natürlich nicht sein...
Welcher Wert steht in 'about:config' bei dir unter browser.sessionstore.restore_on_demand?
-
Bleibt es trotzdem dabei?
Ich habe es heute Morgen nochmal mit dem Debugger untersucht. Es wird in der eigentlichen Download-Funktion über den Aufruf im Skript grundsätzlich immer das Flag launchWhenSucceeded gesetzt. Das ist der Grund, warum die Datei dann über die Standard-Anwendung zusätzlich noch geöffnet wird (z.B. bei .pdf) . Die Einstellungen in der Auswahldialogbox werden nicht berücksichtigt. Habe es noch mit der zusätzlichen Funktion dialog.mLauncher.setDownloadToLaunch(false,null); versucht, aber auch das ändert nichts an dem Verhalten.
Sicher gibt es dafür eine (einfache?) Lösung, aber ich finde sie nicht. Und noch tiefer möchte ich nicht in den FF-Code eindringen.
Wie gesagt, es gibt über den Windows-Schnellzugriff eine mehr als praktikable Alternativlösung. Außerdem verhält sich die Speichern-Funktion auch nicht standardmäßig (Keine Nachfrage bei vorhandenen Dateien!), was für mich ein weiteres Ausschlusskriterium ist.
Ansonsten muss man eben mit der handler.json "spielen" und die entsprechenden Einstellungen dort vornehmen. Eine einfache Lösung habe ich nicht, sorry...
-
Kein Problem, kann passieren...
-
Der Wert war und ist auf false.
...mag sein, aber im Fehlerbehebungsmodus wird WebGL deaktiviert! Oder meintest du etwas anderes?
Normal:
Fehlerbehebungsmodus:
Außerdem funktioniert im Fehlerbehebungsmodus die Map gar nicht mehr, mit dem Hinweis, dass "WebGL erforderlich" ist. (Siehe Screenshot in #6).
-
Tja, im Fehlerbehebungsmodus sieht die Seite jetzt so aus:
Im Fehlerbehebungsmodus wird ja auch WebGL deaktiviert. Ich glaube eher nicht, dass du ein Problem mit WebGL hast.
Die roten Marker sind wahrscheinlich aus einem Font (KMT-Font?) und die hat der Firefox wohl irgendwie falsch geladen bzw. wurden falsch vom Server übertragen.(siehe unten)Du könntest mal versuchen, den Cache und die Website-Daten/(Cookies) zu leeren.
Auch das nochmalige Laden der besagten Seite mit [STRG]+[F5] lädt die Daten neu vom Server.
Ob das schon reicht kann ich nicht sagen, aber vielleicht hilft das schon...
Edit: Die roten Marker sind anscheinend doch nur SVG-Grafiken.
Werden bei dir die anderen Grafiken (links,oben) richtig dargestellt ?