Beiträge von David44

    Besonderheit: Der Code muss sowohl in die userChrome.css als auch in die userContent.css.

    Geht hier nicht, mehrmals probiert, Cache geleert, Codierung, sonst leere .css... Merkwürdig. Aber wenn ohnehin nur Farbe und Breite einstellbar sind, werde ich wohl sowieso bei der Scriptvariante bleiben. Durch die abgerundeten Enden wird der fehlende 3D-Effekt ausgeglichen.

    Es gibt keine Verschlechterungen.

    Für mich ist es eine Verschlechterung, wenn es länger dauert, eine Information zu erfassen (hier: Position des Scrollbalkens). YMMV

    Funktioniert das denn bei Firefox 91(ESR) nun noch per userchrome.css, dieses benutzerunfreundliche kontrastarme Design zu verbessern? Das hier vorgeschlagene geht leider nicht, der Rest der userchrome.css wird aber ausgeführt:

    CSS
    @-moz-document url("chrome://browser/content/browser.xhtml"),
    url("chrome://browser/content/places/bookmarksSidebar.xhtml") {
    /* Scrollbar (Bildlaufleisten 2 Farben): innerhalb von Firefox */
    :root{
    /* Farbe 1: Thumb (Daumen) - Farbe 2: Hintergrund*/
    scrollbar-color: #CC6699 #666699 !important;
    }}


    Mit einem UserScript geht es zwar:

    aber wieder mal 'ne Nummer komplizierter, nur um aktuelle Verschlechterungen auszugleichen. Alleine per userchrome.css wäre mir lieber...

    Seit langem verwende ich zur Zufriedenheit und daher mittlerweile unverzichtbar mehrere Scripte der Art buttonToggleJavascript.uc.js. Nun würde ich gerne per Button auch zwischen "kein Stil" und "Standard-Stil" umschalten.


    Die entscheidenden Kommandos sind mir klar: "gPageStyleMenu.disableStyle()" und "gPageStyleMenu.switchStyleSheet(null)". Auch das ganze Button-Gerüst bleibt wie gehabt. Es fehlt eigentlich nur an einem Pendant zu "Services.prefs.getBoolPref('javascript.enabled')", um das richtige Symbol anzeigen und korrekt umschalten zu können. Wie macht man das? Auch Ideen für ein schönes Symbol-Paar wären nützlich.

    Danke fürs Aktualisieren. Bei meinen Tests der letzten Tage waren funktionierende Scripts die Ausnahme. Die meisten, die mich interessierten, liefen nicht unter FF78/FF91. Z.B.

    GoogleImageSearch.uc.js

    ImageChangeSize.uc.js

    MouseGestures.uc.js

    UserAgentSwitcherLite.uc.js

    und einige andere. Ein paar zeigten zwar Aktivität aber unerwünschte, wie zerschossene Darstellung. Z.B.

    externalApplications.uc.js

    SearchSimilarImage.uc.js

    ToggleImageBtn.uc.js

    Möglicherweise sind ja bei manchen auch nur geringe Änderungen nötig?

    Da ich gerne mit eigenen Userscripts weiterkommen würde und es trotz viel Googelns und Testens nicht klappt, wäre etwas Hilfe von euch nett.


    Ein Problem sind die Events bzw. Listeners. Ein Script soll etwas tun, nachdem die Seite geladen wurde, s.u. Das nur zum Test verwendete Mousedown-Event wird ausgelöst aber pageshow nicht.- warum nicht?


    Vielleicht erstmal ein Teilproblem. Aus vorhandenen Scripts habe ich ein neues erstellt und würde addEventListener verwenden.

    Für die Events finde ich nur düftige Erklärungen. Welches Event ist das richtige, wenn man auf das Neuladen einer Seite reagieren will: 'pageshow' oder 'DOMContentLoaded' oder noch ein anderes? Oder muß man das ganz anders angehen? Nach dem 1. BrowserReload - so weit komme ich z.Z. - muß das Script ja erfahren, wenn die Seite geladen ist und dann den Titel checken und ggf. mit weiterem Reload reagieren. Hier der derzeitige Stand:


    Folgendes müßte doch eigentlich mit einem Userscript machbar sein. Hat das evtl. schon jemand umgesetzt?

    Es soll auf Kommando so oft Reload auslösen und danach den Seitenaufbau warten, bis der Titel des aktuellen Tabs nicht mehr "Error" enthält. Schön wäre, wenn man in der Zwischenzeit in anderen Tabs weiter arbeiten könnte. Wäre super, wenn ihr helfen könntet.

    Über das Thema habe ich auch schon öfter nachgedacht. Die paar Byte Größenunterschied wirken sich wohl eher überhaupt nicht aus. Eher interessant fände ich, welches Format resourcenschonender in der Anzeige ist bzw. den besten Kompromiß zwischen Größe und Rechenaufwand für Decodierung und Anzeige bietet.


    Am allerliebsten würde ich ja eigentlich die Icon-Definition in der Art: resource://gre/chrome/toolkit/skin/classic/global/icons/xxxxx.svg verwenden. Leider scheint das auch eine Spielwiese der Mozilla-Bastler zu sein und man kann sich nicht darauf verlassen, daß der Link in der nächsten Version noch aufgelöst wird. Zig Icons sind doppelt und mehrfach vorhanden, nutzlose Graphiken dazu, aber eine Version später fehlt gerade das, was man braucht...

    Problem gelöst - bitte nur weiterlesen, wenn ihr auf Kommentare verzichtet. Also...... ich mache bisher wenig mit Scripts, aber die haben alle eine Gemeinsamkeit: es kommt kein Umlaut darin vor... im Gegensatz zu den hier thematisierten! Deswegen war mir bis eben entgangen, daß ich alle in ANSI-Codierung gespeichert hatte, mit welcher FF über die Umlaute stolpert. Mit UTF-8 läuft es wie erwartet. :) Danke für eure Geduld und bitte entschuldigt die unnötige Frage.

    Du nutzt ja zumindest noch ein anderes Script.

    Deaktivier das doch bitte mal (und auch alle anderen wenn vorhanden) und teste nur die beiden die nicht funktionieren.


    Du hast beim Neustarten von Firefox den Skript-Cache geleert?

    Beides schon probiert, leider ändert sich nichts.

    "userChrome.ignoreCache = true;" in userChrome.js sollte das tun, oder? Außerdem verwende ich RestartFirefoxButtonM.uc.js v. 0.3, das tut das angeblich auch.

    'urlbar' bewirkt übrigens genauso wenig wie 'menu'.

    Bin gespannt, ob sich eine Lösung findet.

    Was verstehst du unter „rein gar nichts“?

    Was man gemeinhin darunter versteht: rein gar nichts. Es gibt keinerlei sichtbare/spürbare Veränderung mit oder ohne dieses Script.


    Welche Version verwendest du überhaupt? Bitte immer den Skript-Code in einem Code-Kasten einstellen. Ich kann mich dunkel erinnern, dass bei der Standardversion des Skripts hinter warpmenuto searchbar angegeben war.

    Getestet mit Firefox 78.14.0 ESR, auch ganz ohne userChrome.css, falls das eine Rolle spielt, Scriptversion 2019.08.04, aber auch mit Github/Endor8...

    In extras_config_menu.uc.js (1.0.20190504) steht: warpmenuto: 'menu',

    Die Menüzeile ist natürlich eingeblendet. Aber die geht von "Datei" bis "Hilfe", egal welches Script da existiert.


    Wundert mich schon seit Jahren; ich dachte immer, daß das vielleicht nur mit Greasemonkey o.ä. läuft (der Thread ist so unübersichtlich) und wollte jetzt einfach mal Gewißheit.

    Oh, ich war sicher, auch DAS probiert zu haben. :-/ Möglicherweise wurde da im entscheidenden Moment mal wegen eines Hängers beim Beenden der Cache nicht geleert? Jetzt flutscht's jedenfalls wie 'ne Eins. DANKE!! Hast Du evtl. noch eine Lösung, um die usercontent.css (nicht) einzulesen, ohne Firefox neu zu starten? Hier mal mein derzeitiges Script (bewußt minimalistisch):


    Danke, daß Du versuchst, auf meine - wie ich jetzt sehe - bescheuerte Anfrage zu antworten. Ich war offenbar zu genervt (wollte eigentlich auch einen neuen Thread beginnen und hier was anderes fragen)...

    Also die eigentliche Frage war/ist: Wie kann man prüfen, ob eine Datei existiert? Ich habe die sinnlose Frage im vorigen Beitrag mal editiert.

    Nach langer Pröbelei komme ich wieder mal nicht weiter. Wie kann man in einem Script prüfen, ob eine Datei existiert? Kopieren und Umbenennen klappt problemlos mit

    Code
    var css = Services.dirsvc.get('UChrm', Ci.nsIFile);
    css.append('userContent.css');
    var css2 = Services.dirsvc.get('UChrm', Ci.nsIFile);
    css.moveTo(css2,'userContent.temp');

    css.isfile klingt geeignet, ist aber immer false. Einer der (vielen) anderen Versuche war

    Code
    var Path = this.getPrefDirectoryPath("UChrm") + this.getDirSep() + "userContent.css";
    var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsIFile);
    file.initWithPath(Path);
    if (file.exists()) alert("alert file exists");

    aber da läuft das Script gar nicht.

    Offenbar habe ich ein Brett vorm Kopf - das kann doch nicht so schwer sein??

    (Edit: in der Frage Umbenennen/FileExist verwechselt)

    > Den Zusammenhang zwischen deiner Anfrage und diesem Satz verstehe ich nicht. Mozilla verdient doch nicht mehr oder weniger durch die Reihenfolge, in welcher Suchmaschinen bei dir angezeigt werden.


    Ganz abwegig ist es nicht daß Google mehr Kohle 'rüberschiebt, je penetranter sie dem Nutzer aufgedrückt werden. Es kann natürlich auch Zufall sein, daß Google in der ansonsten alphabetisch sortierten Liste ganz oben steht oder unerwünscht zur Standardsuchmaschine wird.


    > Und wenn du die Datei search.json.mozlz4 verteilst und via policies.json lediglich die Standard-Suchmaschine definierst, klappt das?


    Nein. Hab's extra /nochmal/ probiert. Eben war auch die Sortierung dahin. Da hatte ich wohl bei anderen Test etwas anders gemacht.

    Um für neue Profile die gewünschten Suchmaschinen zur Verfügung zu haben, verwende ich "policies.json" im distribution-Verzeichnis. Das klappt soweit gut, aber die Suchmaschinen sind dann einfach alphabetisch sortiert (und Google ganz vorn). Wie kann man das automatisiert ändern? Daß man alles schön betulich in den Einstellungen mit diversen Mausklicks ändern kann, ist mir bekannt, aber nicht die Lösung. Mit einer vorab erstellten search.json.mozlz4 läßt sich die Reihenfolge zwar festlegen, aber dann ist ungewollt gleichzeitig Google die Standard-Suchmaschine. Klar muß Mozilla die Google-Millionen irgendwie verdienen, aber eine Möglichkeit sollte es doch trotzdem geben?

    Gefühl, dass du überhaupt nicht richtig liest, was man dir schreibt.

    Das Gefühl habe ich auch :-/, deswegen gehe ich auch nicht auf jede Äußerung ein. Der Thread ist schon unübersichtlich genug.

    Wenn die letzte Frage mißverständlich war oder untergegangen ist, noch einmal, unabhängig vom gelösten "nojs"-Problem:


    Wie kann man per Script im Quelltext suchen und diesen ersetzen? Also was nach let document = event.target; folgen müßte. Die replace() -Funktion könnte doch da irgendwie anwendbar sein?