FuchsFan Mit meinen Dämonen triggern mich halt so komische Beiträge.
Weiß nicht so recht, wie ich diese einsortieren soll,
und bin dann recht schnell "verschnupft".
Beiträge von Mira_Belle
-
-
Habe kein Interesse mehr an der Fortsetzung!
Habe es meinen Vorstellungen angepasst, mit Kommentaren versehen,
damit ich es auch in Monaten noch verstehe.Wer grundsätzlich die Funktionen gut findet, mag FuchsFans Version nutzen,
eventuell wird die ja weiter gepflegt. -
Das war wahrscheinlich der Scrpitcache.
Freut mich, dass es jetzt wieder funktioniert.
-
black10 Es ist EIN Ordner samt Inhalt und zwei Scripte,

Die Datei config.js und der Ordner userChromeJS müssen in den Firefox Installationsordner

Die Datei config-prefs.js muss in den Firefox Installationsordner\defaults\pref

Einfach nur die alten Dateien mit den neuen überschreiben.
Und daran denken, der Firefox sollte geschlossen sein. -
Ok, damit funktioniert alles wieder
Super.

-
black10 Wenn Du doch weitere Script nutzt, die ja auch unter Firefox 155.0 zum Großteil nicht mehr funktionieren dürften,
warum aktualisierst Du nicht ganz einfach die Dateien zur Nutzung von JavaScript im Firefox?Es ist alles ganz genau beschrieben und ist doch wirklich nicht so schwer!
Mag sein, dass lenny's Lösungsansatz bei der Scrollbar hilft, aber die nächste Anfrage
warum dieses oder jenes Script nicht mehr funktioniert ist dann doch schon vorprogrammiert!Noch mal:
userChrome.js/Firefox 155/userChrome at master · Endor8/userChrome.jsSkripte für die Firefox-Erweiterung userChromeJS. Contribute to Endor8/userChrome.js development by creating an account on GitHub.github.comUnd richtiges Blau wäre => #0000ff
-
Die Skripte funktionieren bei mir jetzt auch wieder.
Super.

-
vor Jahren

Da liegt unter anderem der Fehler. Für den Firefox 155.0 musst Du diverse Dateien austauschen.
userChrome.js/Firefox 155/userChrome at master · Endor8/userChrome.jsSkripte für die Firefox-Erweiterung userChromeJS. Contribute to Endor8/userChrome.js development by creating an account on GitHub.github.comUnd ich meinte aber was anderes!
Nutzt Du generell Scripte, und wenn ja, eben jenes das die Scrollbalken veränderte? -
Funktioniert hier einwandfrei!
Hast Du das hier schon gemacht?
userChrome.js/Firefox 155/userChrome at master · Endor8/userChrome.jsSkripte für die Firefox-Erweiterung userChromeJS. Contribute to Endor8/userChrome.js development by creating an account on GitHub.github.com -
Die muss also nicht ersetzt werden, correcto? GL
Wenn sie in dieser Version schon vorhanden ist, nein,
Aber schaden tut es auch nicht.
-
black10 Nutzt Du überhaupt schon JavaScript zum Anpassen Deines Firefox?
-
„userChrome.js“ vom 14.11.2017.
Ja.
-
Sagen wir es so, noch ist es eine Beta.
Ein Testscript. -
So ein Zufall!
Schau mal, was ich daraus gemacht habe!
Erklärungen gibt es ein anderes Mal (Morgen?)JavaScript
Alles anzeigen// ==UserScript== // @name Extension Options Menu.uc.js // @description Fügt eine Menüschaltfläche zur Verwaltung von Erweiterungen hinzu // @include main // @charset UTF-8 // @version 5.2 // @sandbox false // ==/UserScript== 'use strict'; (function() { if (!window.gBrowser) return; // ■■■■■■■ UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ const id = 'eom-button', label = 'Erweiterungen', tooltiptext = 'Menü für Erweiterungsoptionen', icon = 'skull-crossbones.svg', colour = '#ffe10f', iconPath = '/chrome/icons/', showVersion = true, showAll = false, showDisabled = true, sortEnabled = 0, sortDisabled = 1; // ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ const curProfDir = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir)); const iconURL = curProfDir + iconPath + icon; if (!Services.prefs.getBoolPref('svg.context-properties.content.enabled')) { Services.prefs.setBoolPref('svg.context-properties.content.enabled', true); } /* ============ CSS ============ */ const css = ` #${id} .toolbarbutton-icon { -moz-context-properties: fill, stroke, fill-opacity; fill: ${colour}; } #${id}-popup menuitem.menuitem-iconic .menu-iconic-icon { width: 16px; height: 16px; margin-inline-start: 2px; margin-inline-end: 6px; -moz-context-properties: fill; } #${id}-popup menuitem.menuitem-iconic { font-size: 14px !important; padding-block: 6px !important; padding-inline: 8px !important; } #${id}-popup menuitem.eom-active { color: #008000 !important; } #${id}-popup menuitem.eom-inactive { color: #CC0000 !important; } #${id}-popup menuitem.eom-no-options { color: Gray !important; } #${id}-popup menuitem.addon-uninstall { text-decoration: line-through !important; font-style: italic !important; } `; const style = document.createElement('style'); style.textContent = css; (document.head || document.documentElement).appendChild(style); /* ============ HINWEISFENSTER ============ */ let hoverHint = null; function createHoverHint() { if (hoverHint) return hoverHint; let panel = document.createXULElement('panel'); panel.id = id + '-hover-hint'; panel.setAttribute('noautohide', 'true'); panel.setAttribute('ignorekeys', 'true'); panel.setAttribute('level', 'top'); panel.style.cssText = ` appearance: none; -moz-appearance: none; width: 520px; max-width: 520px; padding: 10px; background: #202124; color: #fff; border: 3px solid #4a90e2; border-radius: 8px; box-shadow: 0 5px 18px rgba(0,0,0,.55); pointer-events: none; z-index: 2147483647; `; let desc = document.createXULElement('description'); desc.id = id + '-hover-hint-text'; desc.style.cssText = ` margin: 0; padding: 5px 5px 5px 15px; background: grey; color: #fff; font-family: Arial, sans-serif; font-size: 15px; line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; word-wrap: break-word; `; panel.appendChild(desc); (document.getElementById('mainPopupSet') || document.documentElement) .appendChild(panel); hoverHint = panel; return panel; } function showHoverHint(event, message) { let panel = createHoverHint(); let desc = document.getElementById(id + '-hover-hint-text'); if (!desc) return; desc.textContent = message; try { panel.hidePopup(); } catch(e) {} panel.removeAttribute('hidden'); try { panel.openPopupAtScreen(event.screenX + 18, event.screenY + 32, false); } catch(e) { Cu.reportError('EOM: Hinweisfenster konnte nicht geöffnet werden: ' + e); } } function hideHoverHint() { if (!hoverHint) return; try { hoverHint.hidePopup(); } catch(e) {} hoverHint.setAttribute('hidden', 'true'); } /* ============ ADD-ON-AKTIONEN ============ */ function openAddonOptions(addon) { let optionsURL = addon.optionsURL || ''; if (!addon.isActive || !optionsURL) return; if (addon.optionsType === 3) { if ('switchToTabHavingURI' in window) { switchToTabHavingURI(optionsURL, true); } else { openTab('contentTab', { contentPage: optionsURL }); } } else { BrowserAddonUI.openAddonsMgr( 'addons://detail/' + encodeURIComponent(addon.id) + '/preferences' ); } } function browseDir(addon) { try { let dir = Services.dirsvc.get('ProfD', Ci.nsIFile); dir.append('extensions'); dir.append(addon.id + (addon.unpack ? '' : '.xpi')); if (dir.exists()) { dir.reveal(); } else { Services.prompt.alert(null, 'Fehler', 'Ordner oder Datei nicht gefunden.'); } } catch(e) { Cu.reportError('EOM: browseDir fehlgeschlagen: ' + e); } } function restart() { let cancelQuit = Cc['@mozilla.org/supports-PRBool;1'] .createInstance(Ci.nsISupportsPRBool); Services.obs.notifyObservers(cancelQuit, 'quit-application-requested', 'restart'); if (cancelQuit.data) return; if (Services.appinfo.inSafeMode) { Services.startup.restartInSafeMode(Ci.nsIAppStartup.eAttemptQuit); return; } Services.appinfo.invalidateCachesOnRestart(); Services.startup.quit( Ci.nsIAppStartup.eAttemptQuit | Ci.nsIAppStartup.eRestart ); } function copyToClipboard(text) { Cc['@mozilla.org/widget/clipboardhelper;1'] .getService(Ci.nsIClipboardHelper).copyString(text); } /* ============ MENÜEINTRAG-KLICK ============ */ function handleItemClick(event, item) { let addon = item._addon; if (!addon) return; let pending = !!(addon.pendingOperations & AddonManager.PENDING_UNINSTALL); let hasModifier = event.ctrlKey || event.shiftKey || event.altKey || event.metaKey; switch (event.button) { case 0: // Linksklick if (addon.optionsURL && !hasModifier) { openAddonOptions(addon); } else if (event.ctrlKey) { browseDir(addon); } else if (event.altKey) { copyToClipboard(addon.id); } break; case 1: // Mittelklick = Startseite if (addon.homepageURL) openURL(addon.homepageURL); break; case 2: // Rechtsklick if (!hasModifier) { let newState = !addon.userDisabled; if (newState) addon.disable(); else addon.enable(); updateItemState(item, newState); } else if (event.ctrlKey) { if (pending) addon.cancelUninstall(); else addon.uninstall(); item.classList.toggle('addon-uninstall', !pending); } break; } } function updateItemState(item, disabled) { item.classList.toggle('eom-active', !disabled); item.classList.toggle('eom-inactive', disabled); } /* ============ MENÜ FÜLLEN ============ */ function sortKey(addon) { let pos = addon.isActive ? sortEnabled : sortDisabled; return pos + '\n' + addon.name.toLowerCase(); } async function populateMenu(popup) { while (popup.hasChildNodes()) popup.removeChild(popup.firstChild); let addons = await AddonManager.getAddonsByTypes(['extension']); let previousState; addons.sort((a, b) => { let ka = sortKey(a), kb = sortKey(b); return ka < kb ? -1 : 1; }); for (let addon of addons) { if (addon.isBuiltin || addon.id.endsWith('@search.mozilla.org')) continue; let showIt = !addon.appDisabled && ( (addon.isActive && addon.optionsURL) || (addon.userDisabled && showDisabled) || (!addon.userDisabled && showAll) ); if (!showIt) continue; let state = addon.isActive; if (sortDisabled === 1 && previousState !== undefined && state !== previousState) { popup.appendChild(document.createXULElement('menuseparator')); } previousState = state; let item = document.createXULElement('menuitem'); item.classList.add('menuitem-iconic'); let name = addon.name; if (showVersion) name += ' [' + addon.version + ']'; item.setAttribute('label', name); // Add-on-Symbol (mit Fallback) let addonIcon = addon.iconURL || addon.iconURL64 || 'chrome://mozapps/skin/extensions/extensionGeneric.svg'; item.setAttribute('image', addonIcon); item.style.listStyleImage = 'url("' + addonIcon + '")'; if (addon.isActive) { item.classList.add(addon.optionsURL ? 'eom-active' : 'eom-no-options'); } else { item.classList.add(addon.optionsURL ? 'eom-inactive' : 'eom-no-options'); } item._addon = addon; item._hint = 'ID: ' + addon.id + '\n\n' + 'Linksklick = Einstellungsseite öffnen\n' + 'Rechtsklick = aktivieren/deaktivieren\n' + 'Mittelklick = Startseite öffnen\n' + 'Strg + Linksklick = Erweiterungsordner öffnen\n' + 'Strg + Rechtsklick = deinstallieren/rückgängig\n' + 'Alt + Linksklick = ID kopieren'; item.addEventListener('mouseenter', e => showHoverHint(e, item._hint)); item.addEventListener('mouseleave', () => hideHoverHint()); item.addEventListener('click', e => handleItemClick(e, item)); popup.appendChild(item); } } /* ============ WIDGET ============ */ try { CustomizableUI.createWidget({ id: id, defaultArea: CustomizableUI.AREA_NAVBAR, label: label, tooltiptext: tooltiptext, onCreated: (button) => { button.style.MozContextProperties = 'fill, stroke, fill-opacity'; button.style.listStyleImage = 'url("' + iconURL + '")'; button.style.color = colour; button.setAttribute('type', 'menu'); let popup = document.createXULElement('menupopup'); popup.id = id + '-popup'; popup.addEventListener('popupshowing', e => { if (e.target === popup) populateMenu(popup); }); popup.addEventListener('popuphiding', hideHoverHint); popup.addEventListener('popuphidden', hideHoverHint); button.appendChild(popup); // Kontextmenü unterdrücken button.addEventListener('contextmenu', e => e.preventDefault()); // Mittel-/Rechtsklick auf den Button selbst button.addEventListener('click', e => { if (e.target !== e.currentTarget) return; if (e.button === 1) { e.preventDefault(); restart(); } else if (e.button === 2) { e.preventDefault(); setTimeout(() => { let cm = document.getElementById('toolbar-context-menu'); if (cm) cm.hidePopup(); }, 0); BrowserAddonUI.openAddonsMgr('addons://list/extension'); } }); } }); } catch(e) { Cu.reportError('EOM: Widget konnte nicht erstellt werden: ' + e); } /* ============ AUFRÄUMEN ============ */ window.addEventListener('unload', () => { hideHoverHint(); try { CustomizableUI.destroyWidget(id); } catch(e) {} }, { once: true }); })();Es wird definitiv noch kleine Änderungen geben.
Es fehlen noch Erläuterungen und diverse Kommentare.
Und auch der Header gefällt mir so nicht wirklich. -
FuchsFan Endlich am Rechner! Ja ich sehe!!
Und scheint recht interessant zu sein! Habe es mir mal gesichert!Danke.
Aber Du kennst mich

Ich werde daran herumbasteln. -
Wenn es aus dem Text nicht hervor geht,
Auf einem Smartphone recht schwierig!
Aber gut, habe das zweite Bild, das mit dem Text, vergrößert.
Kann nicht wirklich gut erkennen, was da so anders sein soll, als bei dem Addonbutton, der schon vorhanden ist.
Muss es also doch erst testen und vergleichen.
-
Ich habe jetzt dreimal Deine Bescheibung zu dem Script gelesen,
aber weiß immer noch nicht, wozu es gut sein soll.
Leider kann ich es z.Z. nicht ausprobieren, daher dieser blöde Kommentar.
Sorry.
-
Und dafür, also das Backup, gibt es hier on Board sogar ein PS1-Script!
-
seipe Hast Du vor dem Update ein Backup gemacht?
Spiel es zurück und warte das offizielle Update ab.
Kein Backup, kein Mitleid!
Dann musst Du Dich noch einmal ganz genau an die Anleitunen von Endor halten.
Eventuell hast Du ja dann Glück.
-
Zitat
Unabhängig von deinem Problem, woher hast du die Version?
Wird wie immer überall angeprießen!
z.B. auf http://www.deskmodder.de
Und ist auf den Servern schon vorhanden.
Ist halt immer die gleiche Leier.