1. Nachrichten
  2. Forum
    1. Unerledigte Themen
    2. Forenregeln
  3. Spenden
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. camp-firefox.de
  2. Speravir

Beiträge von Speravir

  • Einige Skripte funktionieren seit ff 138 nicht mehr

    • Speravir
    • 10. Mai 2025 um 01:22
    Zitat von Zitronella

    aber da ich gewohnt war, dass alles Auskommentierte in Notepad++ sich in grün verwandelt und dies in diesem Fall nicht so war, dachte ich es wäre falsch

    Weil Du eine Javascript-Datei geöffnet hattest, wurde die Syntaxhervorhebung für Javascript aktiviert, bist aber im CSS-Bereich, der entweder als Zeichenfolge (String) innerhalb von Anführungszeichen oder als Literal innerhalb von Gravis-Zeichen (Backticks) eingefügt werden muss, Du könntest die Sprache von Hand auf CSS umstellen, solltest dir dann aber bei größeren Skripten vorher die Zeilenzahl merken, an der der CSS-Teil beginnt, weil es sonst länger dauern kann, bis man ihn wiederfindet (ist mir selber schon so ergangen).

  • Einbindung von Icons in Skripts

    • Speravir
    • 9. Mai 2025 um 00:25
    Zitat von Sören Hentzschel

    Es ist besser, weil du am Ende trotzdem eine Bild-Datei einbindest und diese gecacht werden kann.

    Aha, danke! Das ist, was hier zählt.

    Zitat von Sören Hentzschel

    Inline-CSS sollte man, sofern möglich, eher vermeiden als dass es eine sinnvolle Empfehlung ist.

    Da sind wir ja einer Meinung, aber ich wollte das nicht einfach so schreiben, sondern suchte nach externen Belegen.

    Zitat von Sören Hentzschel

    Aber Google interessiert es weder, wie das CSS eingebunden wird (ich kann mir höchstens indirekte Faktoren vorstellen, wie dass tausende Zeilen CSS in einer HTML-Datei das Dokument größer machen), noch sind Googles Suchmaschinen-Algorithmen für Firefox-Scripts relevant.

    Du hast ja sowas von Recht – speziell an den letzten Teilsatz hätte ich auch selbst denken können, allerdings ging es mir um das Cachen der Symbolbilder – nur fand ich dann solche Seiten und genau darauf bezog ich mich:

    • Improve site performance by inlining your CSS - LogRocket Blog
    • Inline CSS Definition – Verstehen Sie die Basics
    • Inline CSS vs. CSS-Datei » fastWP
  • userChrome.js Scripte für den Fuchs (Diskussion)

    • Speravir
    • 9. Mai 2025 um 00:04
    Zitat von moko2000

    Danke. Ich weiß nicht, wie ich zitieren soll.

    • Alles zitieren: rechts unten auf das Anführungszeichen “ drücken.
    • Nur Teile zitieren: mit Maus markieren und entweder mehrere Zitate speichern und dann ganz unten auf die Schaltfläche mit „Ein Zitat“ oder „2 Zitate“ (zählt hoch, wenn mehr) gehen und dann auswählen oder gleich den ausgewählten Text als Zitat einfügen in den Editor für die Antworten einfügen lassen.
    Zitat von moko2000

    AnimationToggleButton.uc.js funktioniert jetzt im zweiten Fenster.
    In diesem Fall bleibt die GIF-Animation im ersten Fenster gleich, aber nur die Schaltfläche ändert sich.

    Dadurch, dass man mit Hilfe des Skriptes eine Einstellung im Firefox ändert, die im gesamten Profil gültig ist, lässt sich letzteres meines Wissens nach nicht verhindern.

  • Skript VerticalToolbar.uc.js funktioniert in neu erstellten Profilen nicht mehr richtig

    • Speravir
    • 8. Mai 2025 um 23:24
    Zitat von grisu2099

    Fall gelöst: :)

    Der Übeltäter war

    Aah. Danke für die Rückmeldung!

  • Einbindung von Icons in Skripts

    • Speravir
    • 8. Mai 2025 um 01:56

    Nur als Ergänzung, denn die Variante hier ist vermutlich gut verständlich, ich würde nur die Zeile mit dem ProfilePath, die ja nicht konfiguriert werden soll, weiter nach unten schieben, direkt vor die derzeitige Zeile 9:
    Um mich selbst zu zitieren, meine gestrige Antwort auf Mira_Belle an anderer Stelle:

    Zitat von Speravir
    Zitat von Mira_Belle

    Und lassen sich so zum Bleistift einbinden.

    Das kann man sogar zusammenfügen: Zeile 1 und 2 vertauscht, Variablenname angepasst:

    JavaScript
    let ButtonIcon = "default_icon.svg"; // Name & Dateiendung des anzuzeigenden Symbols!
    let IconPath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons', ButtonIcon )); // Pfad zum Profilordner und gleich in den entsprechenden Unterordner

    Und dann Zeile 6 entsprechend geändert:

    Code
    #browser-toolbox-button { list-style-image: url("${IconPath}") }

    Und die Einbindung als List-Style-Image mag zwar meistens so sein, aber es ist auch möglich, dass ein Symbol als Hintergrundbild eingebunden wird.

    Endor hat geschrieben, dass er kaum Zeit hat. Man müsste ihm daher möglichst detailliert

    • jedes so geänderte Skript fertig anbieten, einige Skripte müssten übrigens demnächst sowieso einen Hinweis erhalten, dass sie nur funktionieren, wenn die Einstellung security.allow_unsafe_dangerous_privileged_evil_eval auf true gesetzt wird;
    • das dazu gehörende Bild oder die dazu gehörenden Bilder bereitstellen; die Dateinamen der Bilder müssten sich auf das dazugehörende Skript beziehen und zur Unterscheidung einen Zusatz wie true/aktiv/active/enabled/on bzw. false/inaktiv/inactive/disabled/off erhalten oder im Beispiel AnimationToggleButton.uc.js dann eben normal, once und none,
    • einen Text schreiben, den er als Readme bereitstellen kann.

    Wo diese Bilder zu finden sind, müsste am besten im Skript selbst benannt werden. Endor, ich glaube, ein eigenes Verzeichnis Icons oder Bilder wäre sinnvoll. Ein einziges icons.zip halte ich jedenfalls nicht für ideal: Das müsste bei jedem neuen Skript oder sonst möglichen Änderungen neu gepackt werden und, wenn man dann ein neues Skript herunterlädt, auch jedes Mal vollständig heruntergeladen werden, obwohl man nur die neuen Symbole haben will.

    Und noch etwas Mira_Belle und Horstmann. Ich finde jetzt auf die Schnelle die Stelle nicht mehr, wo ihr etwas von Einbindung ohne CSS schreibt: Das hier ist verstecktes Inline-CSS:

    Code
    menuitem.style.listStyleImage = 'url("' + ("file:" + ProfilePath + IconPath + ButtonIcon) + '")';

    Und das ist dann auch nicht allzu viel besser als base64-Bilder, oder irre ich mich da, Sören Hentzschel?

    (Ich bemerke gerade, dass diverse Seiten Inline-CSS empfehlen, weil Google externes CSS als negativ bewerten soll, dabei aber internes CSS meinen, zum Verständnis beispielsweise Was ist der Unterschied zwischen Inline-, Internen- und Externen-CSS?)

  • Mar Update funktioniert von Version 138.0 auf 138.0.1 nicht mehr

    • Speravir
    • 8. Mai 2025 um 00:26

    Sören, meine Antwort sollte nur als zusätzliche Information dienen, weil Du das, worauf Du dich bezogen hast, nicht zitiert hat und man beim schnellen Überfliegen Deine Aussage missinterpretieren kann. Mir ist es nämlich selbst zunächst so ergangen und ich hatte meine Replik zuerst auch anders formuliert, nur ist mir zum Glück noch ein Licht aufgegangen.

  • Mar Update funktioniert von Version 138.0 auf 138.0.1 nicht mehr

    • Speravir
    • 7. Mai 2025 um 01:56
    Zitat von Sören Hentzschel

    Diese Archive beinhalten lediglich die Änderungen zwischen den Versionen und nicht das komplette Programm.

    Nur als Info, im von Milupo verlinkten Pfad findet man eine Datei firefox-138.0.1.complete.mar. Neben der Dateibezeichnung lässt auch die Dateigröße darauf schließen, dass es sich hier nicht nur um Änderungen zu vorigen Version handelt. Du hattest dich mit Deiner Aussage aber auf die internen Updates bezogen.

  • Skript VerticalToolbar.uc.js funktioniert in neu erstellten Profilen nicht mehr richtig

    • Speravir
    • 7. Mai 2025 um 01:38
    Zitat von grisu2099

    Das folgende Skript funktioniert nicht mehr richtig - allerdings nur in neuen Profilen. In bestehenden Profilen, egal ob Release oder Nightly, läuft es einwandfrei. :/

    Hast Du in den bestehenden Profilen eventuell per Userskript erzeugte Schalter enthalten? Ich nutze addonbar_vertical.uc.js von Aris und dort ist bei mir genau das der Fall, siehe Issue bei Aris: Script addonbar_vertical: addon buttons disappear · Issue #88, vor allem das eingebettete Video. Mit diesem Workaround funktioniert dieses Skript aber bei mir – nur gelegentlich muss ich kurz mal die Leiste ein. und aufklappen lassen, und zwar wenn Buttons von allein in der Adressleiste auftauchen.

    Wenn ja, müsstest Du die in der Leiste vermissten Schalter im Erweiterungsmenü finden, wie auch im Video zu sehen ist.

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • Speravir
    • 7. Mai 2025 um 01:15
    Zitat von Mitleser

    könnte es auch sein, dass einfach nur der Reload im falschen Fenster stattfindet? Dass z.b.: event.target.ownerGlobal.BrowserCommands.reloadSkipCache();statt BrowserCommands.reloadSkipCache(); schon reichen würde?

    Das kann sein. Ich hab das mangels Kenntnis dieser Anweisungen nicht getestet.

    Zitat von Horstmann

    Müsste die Funktion an sich dann nicht auch nach unten?

    Hmm. Ich habe diese bei mir funktionierende Version und genau das getan:

    JavaScript
    /* AnimationToggleButton.uc.js, Symbole von Zitronella,
     * https://www.camp-firefox.de/forum/thema/133649/
     * Änderungen von Brokenheart: https://www.camp-firefox.de/forum/thema/133649/?postID=1187103#post1187103
     * Änderungen von Endor: https://www.camp-firefox.de/forum/thema/137909/?postID=1249534#post1249534 (anderer Thread)
     * (Speravir: alten Tooltiptext und alte Symbole wieder eingefügt),
       letzte Änderung: https://www.camp-firefox.de/forum/thema/112673/?postID=1271468#post1271468
    */
    
    (function() {
    if (!window.gBrowser) return;
    
    const
    	buttonID = 'animation-button',
    	configPref = 'image.animation_mode',
    	dataAttrib = 'data-animmode',
    	labelText = 'Animation',
    	tooltipText =
    `Linksklick: GIF-Animationen einschalten
    Mittelklick: Animation einmal abspielen
    Rechtsklick: Ausschalten`,
    	css =
    `#${buttonID}{
    &[${dataAttrib}="normal"] {list-style-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABbElEQVR42sWTP6vBURjHfy9DdiarDAZZhBhs/iS/SWGQMlBkIKKUuyMSCwklgxTyFmwWZq/BR8+x3Fu6Nwz31Klvp/N8nuf7PR1Ne2EZjcYvm81GMpmk3W7z62WDwaBLQblcJpfLoes6x+ORzWaDy+Uin88/B1gsFiqVCtPplFAoxGq1Yr1e43Q6CQQC+Hy+n4VWqxW73U6r1eJ6vZJKpZCuUuhwOPjT13w+p1qt4vF4yGazmEwmXslFi8fjZDIZvF6v8ildZdREIoHb7SYYDCotDUTLhJJBLBbD7/ejpdNp+v0+hUKBy+VCs9lUGZxOJxqNBrVaTWmZsl6vcz6fKZVKdDoder0emtlsVonOZjP2+z3L5ZLJZMJut1N6PB6r88ViofThcEBsb7dbFbKyMRqNuN1uL2+xrwBi4R2AZPYRIBwOPwASxkeAbrf7z4DBYPAWIBKJPADFYlG98XA4fLolZHnq72fy2aLRKHfeRoLqwjwI3AAAAABJRU5ErkJggg==")}
    &[${dataAttrib}="once"] {list-style-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABaElEQVR42p2TvYrCUBSE72OIvVa2ksIipBENWKRTQ0gqQVOIYKEgpIhYCIL7AAmx0EYRLcRCAip5BTsbrX0GR04s3PwsbDwwzQ3fnDsTLmMJJp1O/3Ach1arBWawt/6aVCqlEWCaJnq9HjRNw+Vygeu6HzjOIJfLYTgcYr1eo1arYb/f43A4QBAESJIUhEn5fB6FQgHT6RSPxwO6roO2EsjzfHBDGKbZbrcYjUYol8vodrvIZDLxueJgmkajgU6nA1EU/Zy0la7abDZRKpVQrVYj1y4Wi1BVFZVKBazdbmM2m2EwGOB+v2MymfgdXK9XjMfjCHy73WAYBizLguM4YNlsFv1+H5vNBufzGbvdDqvVCqfTKQIvl0t4ngeKfTwe/ZL9GIvFAs/nM6AwHP5Oovi+AUVICpOos4jBf2FSvV5/G1AZSeGAgW3bieGAwTfwx+BLmCTLctBgPp/HikqmX/37jB6boih4AcQgRNTa5HaFAAAAAElFTkSuQmCC")}
    &[${dataAttrib}="none"] {list-style-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABbUlEQVR42p2TP6uCYBjF/RY32lqaWqOhQVyigoa2/iA6CdUgQUNB0FA0BEH3AxQ56FKIDdEQgopfoa2l5j6Dp/u8F+J69cK1B87i6+887zkixyWYdDr9WSgU0O12EXAc058vp1IpmYDpdIrhcAhZlnG5XGDb9guONcjlcpjNZjBNE81mE6fTCefzGYIgoF6vh2BmkM/nUSwWsVqt8Hg80Ov1QFsJ5Hk+tCEC0xwOB8znc1QqFQwGA2QymY+4SLEwjaIo6Pf7qFarLCdtpat2Oh2Uy2U0Go3ItUulEiRJQq1WA6eqKjRNw3g8xv1+x3K5ZB1cr1csFosIfLvdMJlMsF6vsd1uwWWzWYxGI1iWBc/zcDwesd/v4bpuBN7tdvB9HxTbcRxWMothGAaCIAjrFxw5/xLFZwYUISlMos6iBv+ESa1W69uAykgKhww2m01iOGTwDvwyeBcmtdvtsIGu67GikulT/3xGP5soingC1EBhpA0JGaMAAAAASUVORK5CYII=")}}`;
    
    let prefVal = Services.prefs.getCharPref(configPref);
    
    try {
    	CustomizableUI.createWidget({
    
    	id: buttonID,
    	type: 'custom',
    	defaultArea: CustomizableUI.AREA_NAVBAR,
    
    	onBuild: function(aDocument) {
    		let tb_button = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
    		let attributes = {
    				id: buttonID,
    				class: 'toolbarbutton-1 chromeclass-toolbar-additional',
    				removable: 'true',
    				label: labelText,
    				tooltiptext: tooltipText
    		};
    		for (let a in attributes) tb_button.setAttribute(a, attributes[a]);
    		tb_button.setAttribute(dataAttrib, prefVal);
    		tb_button.IsOnce = (prefVal == 'once');
    
    		return tb_button;
    	}
    	});
    } catch(e) {};
    
    document.getElementById(buttonID).addEventListener('click', event => {
    	const button = document.getElementById(buttonID);
    	function getPref() {return Services.prefs.getCharPref(configPref)};
    	function setPref(val) {Services.prefs.setCharPref(configPref,val)};
    	
    	function setIsOnce(val) {
    		let win = Services.wm.getEnumerator('navigator:browser');
    		while (win.hasMoreElements()) {
    			win.getNext().document.getElementById(buttonID).IsOnce = val;
    		};
    	};
    	switch (event.button) {
    		case 0:
    			setPref('normal');
    			if (button.IsOnce) {
    				BrowserCommands.reloadSkipCache();
    				setIsOnce(false);
    			} else {
    				if (prefVal == 'normal')
    					BrowserCommands.reloadSkipCache()
    				else
    					BrowserCommands.reload();
    			};
    			break;
    		case 1:
    			setPref('once');
    			BrowserCommands.reloadSkipCache();
    			setIsOnce(true);
    			break;
    		case 2:
    			setPref('none');
    			event.preventDefault();
    			event.stopPropagation();
    			BrowserCommands.reload();
    			break;
    	};
    	let win = Services.wm.getEnumerator('navigator:browser');
    	while (win.hasMoreElements()) {
    		win.getNext().document.getElementById(buttonID).setAttribute(dataAttrib, getPref());
    	};
    });
    
    let stylesheet = document.createProcessingInstruction('xml-stylesheet', 'type="text/css" href="data:text/css;utf-8,' + encodeURIComponent(css) + '"');
    document.insertBefore(stylesheet, document.documentElement);
    
    })();
    Alles anzeigen

    moko2000, such dir eine der Varianten aus, diese von mir oder die vom Mitleser ein paar Postings weiter oben.

    Zitat von Mira_Belle

    Und lassen sich so zum Bleistift einbinden.

    Das kann man sogar zusammenfügen: Zeile 1 und 2 vertauscht, Variablenname angepasst:

    JavaScript
    let ButtonIcon = "default_icon.svg"; // Name & Dateiendung des anzuzeigenden Symbols!
    let IconPath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons', ButtonIcon )); // Pfad zum Profilordner und gleich in den entsprechenden Unterordner

    Und dann Zeile 6 entsprechend geändert:

    Code
    #browser-toolbox-button { list-style-image: url("${IconPath}") }
  • Einige Skripte funktionieren seit ff 138 nicht mehr

    • Speravir
    • 7. Mai 2025 um 00:34
    Zitat von Mira_Belle

    Endor Kannst Du das Skript in Deine Sammlung aufnehmen?

    Einen gescheiten header muss ich mir noch einfallen lassen,
    oder hast Du eine Idee?

    Vielleicht context-translate-enhanced.uc.js? (Ping Endor.) Die bisherige Variante ist aber wohl nicht bei Endor zu finden - oder besser: die zwei Varianten für Google und DeepL.

  • Einige Skripte funktionieren seit ff 138 nicht mehr

    • Speravir
    • 7. Mai 2025 um 00:12
    Zitat von Zitronella
    Zitat von Speravir

    Bei dir stand etwas von Weiterleitungen.

    ja, weil es teils auch Weiterleitungen blockiert auf andere Seiten siehe Beispiel 2 und 3 in diesem Post.

    Ja, eben. Beachte das Schlüsselwort refresh in der Meta-Anweisung. Diese besagt „Lade die Seite neu mit der angegebenen URL“, man kann aber auch dieselbe Adresse neu laden lassen (war vielleicht sogar der ursprüngliche Anwendungsfall, weiß ich aber nicht).

    HTML
    <meta http-equiv="refresh" content="60">

    Und: Das Skript funktioniert, wie gepostet, mit deinen beiden Beispielseiten, aber nicht mit Beispiel 1 (was auch nicht anders zu erwarten war). Ich es oben (oder: am Ende der ersten Seite) übrigens leicht geändert: Die Tooltips sind jetzt ebenso wie das CSS als Template Literale (Vorlagen-Strings) eingetragen (Link zu MDN).

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • Speravir
    • 6. Mai 2025 um 01:26
    Zitat von moko2000

    Hier geht es um AnimationToggleButton.uc.js.
    Durch Klicken auf eine Schaltfläche im zweiten Fenster wird eine Aktion im ersten Fenster ausgeführt.
    Es wäre schön, wenn es in einem zweiten Fenster funktionieren würde.

    Oha, stimmt. Ich hab jetzt gerade keine Zeit mehr, aber vermutlich muss man das entsprechend Horstmann’s Vorgehen ändern:

    Zitat von Horstmann

    Generell hänge ich einfach den addEventlistener unten an, mit der ID des Buttons, und ausserhalb des oberen Codeabschnitts

    Wenn mir niemand zuvorkommt, werde ich das ausprobieren.

  • Einige Skripte funktionieren seit ff 138 nicht mehr

    • Speravir
    • 6. Mai 2025 um 01:12
    Zitat von Zitronella
    Zitat von Speravir

    Das Skript für accessibility.blockautorefresh könnte nach diesem Vorbild angepasst werden.

    ja, so machte ich das.

    Upps. Ich habe jetzt unabhängig daran gearbeitet, Du kannst ja mal vergleichen:

    JavaScript
    /* accessibility-blockautorefresh-button - Zitronella in
       https://www.camp-firefox.de/forum/thema/139300/?postID=1271302#post1271302
       geändert durch Speravir
    */
    (function() {
    
    	if (location != 'chrome://browser/content/browser.xhtml') return;
    
    const
    	buttonID = 'accessibility-blockautorefresh-button',
    	configPref='accessibility.blockautorefresh',
    	dataAttrib = 'data-state',
    	labelText = 'Automatisches Neuladen von Webseiten',
    	tooltipOn =
    `   AKTIV: Automatisches
    Neuladen von Webseiten`,// Leerzeichen zum optischen Einrücken
    	tooltipOff =
    ` INAKTIV: Automatisches
    Neuladen von Webseiten`,
    	css =
    `#${buttonID}[${dataAttrib}="on"] {list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACdklEQVR4nJVSW0iUQRj9Zvd3V3d/3VbR8LJJkraCmZobqQViEF0t3DakBzMTKXvqQQgMpB56jC5kN6nMyjJ0wS4YFCUhKBvUGhQmGhopXiqytZ3559ZD/bK6RnVeZuYbzvnmO2cA/oA1+bnGP92FwrBY8dTFo1WbS9fX/osACj2szslCh+rKjuUUOY73+0YffJ76/kRKAZRxPvnp22B/34fuF909ZFGBwg1rlYN1O86vWBVfwwQFJigwySB0/2VydrjXO17VdPZOd9gI2XkrCxwZtgrCMRCO5cI1SH+AMYYuz92t3t+7352r8+aMetnXP2pVEl6lONVt0siiqNCkxogkHEvCMMIcI8wwokDMyMSXBT5GtE5MTEgldJ7G082PAoE9mzbuS/X6n07dfNs7fplxDtboyKg8T8wlSworpFxDpiRaZLfbbQDwdZ4AAMCNpjYfwWXFqs3s7Op6PKzX1SXuGpNNrhMSISkULoQgcyZW15ZnFRRnVnEpQEgGPV3DZ1qut47o5JNXDje8fjZ2re22d3RhQwUAgGCqZrqWHtHdlgrLsCdVXCAEc2REEOtQtpYcSK6MiHSX3rra/iYsxvz8vIj6c553apySxiRDTFDJBEVMUEm5hjSuSY1rKDCDp/0ds57mxvbn81IYGxsXcTHJA6nZ0R4OmqIJDWmcAGYYEYYBsyDCDAM1EIslkW2JDqa1vB8YnJ0Xo6/XP6Qak/ossYYco5Um/I7tV4QMS8yCaGZamxzqVCo77nb6w36iDpfLZUpMiU+32syJEqQBIQSOEnZCIB4/8tBcfq/V61vI+SuqG7bX73LvTP9vog5npjPspTp+Ah8eSZ/sO5KDAAAAAElFTkSuQmCC)}
    #${buttonID}[${dataAttrib}="off"] {list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACd0lEQVR4nJVSW0hUURTd585LTRMdk1F0akJtKiMfjVl9mBGhI1nUGFEQ4oeIPz0++qhA7NeP6CPKogIVplDR3iMUjWSB+BE9IMQHKtHMWD5SvHfuvWef3Y8j6ijV+jnn7MNa+5y1NsA6KMrLNax3txzSWsWWC8dqTu7Nqf8XAbb8ULAzhzW4ndcO27TGviA8D8n0GgQCFwLH5mHo3fhC79v3/eqaAiV7dhkbj9hvFSWptcR1ANQAUIfInlCHQNg0em/SXtPk7emN+oIrO33f7nj5HGkKgCYTaQqQphDoMpCuEuoIVqY66q1jz2o97vwIb8moD19HJig992Phht8VZhGOJV0lwTVCFMQRGBcS40JijMBikcA+SCneUChEKzwAAKirKnddzhzv6pyytb0JGu8iImyMNcfW24LNWcaF/SgYm0XT3KXhlC1+v3/GuFrgTvurAeWE+2CyBZy+npejkbr11NFaq0ErJmJMAKAQsrpk4nnPodyyrIQaEhxAIHR8j7n54FH3eITcXneg4Wko4WFrl29idUMjAECYU3yJVb5IqAFwHSyo5DjOlt7WVAUNkgTbTLPuKxnT1XGessrmDt+XqBhdBXkmb0XitzSTshW4zgg1AtQZISdEYigYoWBsmpt/NU9trrrx2OdfkcKPQFDE2XcMFsfPVBkwbCSuMcERODKmCwkWEwCJKM5hlMt/phW2Dg4NL6yIse/z8Iiekd9vMyh5iaClcpQYR4k4SkxfXAN6zOT9OUe1t/vFp6hJXBool8tsT03KTo6R0ghAYoyBJyF0nRFsapnPPN3W+WRgNeevaDpTetVzvDL7v4kRbHc6o14awR8IFzD9TbnyZAAAAABJRU5ErkJggg==)}`;
    
    	try {
    			CustomizableUI.createWidget({
    				id: buttonID,
    				type: 'custom',
    				defaultArea: CustomizableUI.AREA_NAVBAR,
    				onBuild: function(aDocument) {
    						function getPref() {return Services.prefs.getBoolPref(configPref)};
    						let tb_button = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
    						let attributes = {
    							id: buttonID,
    							class: 'toolbarbutton-1 chromeclass-toolbar-additional',
    							removable: 'true',
    							label: labelText,
    							tooltiptext: getPref() ? tooltipOff : tooltipOn
    						};
    						for (let a in attributes) { tb_button.setAttribute(a, attributes[a]) };
    						tb_button.setAttribute(dataAttrib, getPref() ? 'off' : 'on');
    						tb_button.addEventListener('click', onCommand );
    
    						function onCommand() {
    							let isEnabled = !getPref();
    							Services.prefs.setBoolPref(configPref, isEnabled);
    							let windows = Services.wm.getEnumerator('navigator:browser');
    							while (windows.hasMoreElements()) {
    									let button = windows.getNext().document.getElementById(buttonID);
    									if (isEnabled) {
    										button.setAttribute('tooltiptext', tooltipOff);
    										button.setAttribute(dataAttrib,'off');
    									} else {
    										button.setAttribute('tooltiptext', tooltipOn);
    										button.setAttribute(dataAttrib,'on');
    									}
    							};
    						};
    
    						return tb_button;
    				}
    			});
    	} catch(e) { };
    
    	let stylesheet = document.createProcessingInstruction('xml-stylesheet', 'type="text/css" href="data:text/css;utf-8,' + encodeURIComponent(css) + '"');
    	document.insertBefore(stylesheet, document.documentElement);
    
    })();
    Alles anzeigen

    Bei dir stand etwas von Weiterleitungen. Entsprechend Accessibility.blockautorefresh in der MozillaZine Knowledge Base habe ich das geändert. Das könnte dann doch auch von Endorauf GitHub hochgeladen werden, oder? Sollte dann wohl ebenso zu den anderen deratigen Skripten in Fx135 einsortiert werden.

  • Einige Skripte funktionieren seit ff 138 nicht mehr

    • Speravir
    • 5. Mai 2025 um 21:22

    Ich hab mir die Antworten jetzt noch nicht angesehen (wo ich davon ausgehe, dass lauffähige Skriptversionen gepostet wurden), aber Zitronella: Siehe quick-media-codec.uc.js bei Endor (Änderungen von mir).

    Das Skript für accessibility.blockautorefresh könnte nach diesem Vorbild angepasst werden.

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • Speravir
    • 4. Mai 2025 um 00:39
    Zitat von bege

    Diese Skripte gehen jetzt auch wieder.
    JavaScript: AnimationToggleButton.uc.js

    Hmm?! Von welcher Version bist Du ausgegangen? (Edit: Ach, steht ja direkt im Kommentar.) Denn die bei Endor vor 4 Monaten hochgeladene Version funktioniert prima in Fx138.

    Nicht missverstehen: Es ist gut, dass du Du selbst eine Lösung gefunden hast.

  • Kann man die Strg-F Suchergebnisse deutlicher hervorheben lassen?

    • Speravir
    • 28. April 2025 um 21:44

    Du könntest mit den folgenden Einstellungen in about:config herumspielen:

    • findbar.highlightAll auf true setzen.
    • ui.textHighlightBackground, der Wert ist wie bei allen folgenden eine erlaubte Farbangabe, ich hab mir das beispielsweise auf purple gesetzt (entspricht #800080).
    • ui.textHighlightForeground für den Text einer Fundstelle, standardmäßig #ffffff (weiß).
    • ui.textSelectAttentionBackground, Hintergrund für die aktive Fundstelle (die bei findbar.highlightAll false als einzige angezeigt wird), ich hab hier #208048 eingestellt.
    • ui.textSelectAttentionForeground, die dazu gehörende Textfarbe.

    Mehr wüsste ich jetzt auch nicht.

  • URL DeepLink für Suchmaschinen?

    • Speravir
    • 7. April 2025 um 01:29
    Zitat von .DeJaVu

    Was deine (vermutliche) Frage angeht.

    Keine Frage, sondern begründete Vermutung, die offensichtlich ebenso teilst.

  • URL DeepLink für Suchmaschinen?

    • Speravir
    • 6. April 2025 um 00:06
    Zitat von .DeJaVu

    Ob DDG auch POST beherrscht, weiss ich dennoch nicht.
    […]

    Ah doch, hier zu lesen:

    https://duckduckgo.com/duckduckgo-hel…ettings/params/

    Zitat
    Address barkg
    • g for GET
    • p for POST

    Ach, sieh an. Das heißt dann wohl bei kg=p, dass man per GET mitteilt, dass alles Folgende per POST abzuwickeln sei. Ich wusste bisher nur, dass man das in den Einstellungen für die Suchmaschine einstellen kann, die dann als Cookie gespeichert werden.

    Zitat von .DeJaVu

    ionos dazu: GET vs. POST – die beiden wichtigsten HTTP-Requests im Vergleich Die HTTP-Requests GET und POST führen zum selben Ergebnis, unterscheiden sich aber grundlegend. Worauf es bei der Wahl GET vs. POST ankommt, erfahren Sie hier. http://www.ionos.de

    POST ist privatsphäre-freundlicher.

    Ich hoffe, das hilft weiter.

    Wirklich schön verständlich geschrieben, aber irgendwie fühle ich mich doch ignoriert (siehe den Beginn meiner gestrigen Antwort).

  • URL DeepLink für Suchmaschinen?

    • Speravir
    • 5. April 2025 um 01:47
    Zitat von .DeJaVu

    Manch einer möchte einen dieser Abfragen-Optione, damit es nicht zu verfolgen ist.

    Vergleiche Hypertext Transfer Protocol – Argumentübertragung. Bei GET erscheinen die Parameter im URI, im Beispiel https://duckduckgo.com/?q=Ludwig+B%C3%B6hme+Dirigent&ia=news&iar=news, und damit normalerweise der Browserhistorie, bei POST nicht, dort würde nur https://duckduckgo.com/ in der Historie zu finden sein.

    Zitat von CFmicha

    Wäre fein, wenn jemand noch eine Lösung für

    https://www.gruble.de
    oder
    https://www.startpage.com

    hätte ...

    Beide sind OpenSearch-Suchmaschinen, das heißt, Du kannst entsprechend dem Artikel Suchmaschinen in Firefox hinzufügen oder entfernen vorgehen. Ich habe mir schon vor längerer Zeit auf diese Weise Startpage hinzugefügt und für das nicht installierte Gruble wird mir das grüne Pluszeichen angezeigt. Es gibt aber auch im von DeJaVu verlinkten MyCroft Project Plugins für beide.

  • Toolbox Button.uc.js funktioniert nur teilweise in Fx 139

    • Speravir
    • 3. April 2025 um 23:34
    Zitat von milupo

    Ich habe jetzt nur mal Letzteres installiert. Der Eintrag erscheint im Tab-Kontextmenü und der Haken wird auch gesetzt bzw. entfernt. Die Warnung zu eval() erscheint nicht, nur „gBrowserInit is not defined“.

    Danke fürs Testen. Ich befürchte, man muss Alices userChrome.js in der jüngsten Version nutzen, wie mir anhand der letzten Änderungen erscheint.

Unterstütze uns!

Jährlich (2025)

74,7 %

74,7% (485,86 von 650 EUR)

Jetzt spenden
  1. Kontakt
  2. Datenschutz
  3. Impressum
Community-Software: WoltLab Suite™
Mastodon