Danke für den Code ist bei Github schon geändert:
Mfg.
Endor
Danke für den Code ist bei Github schon geändert:
Mfg.
Endor
Hallo milupo !
Alles alles Gute zum Geburtstag!
Vor allem viel Gesundheit aber auch viel Glück und Wohlergehen
wünsche ich Dir von ganzen Herzen.
Mfg.
Endor
Hier funktioniert es einwandfrei.
Ob unten angeheftet, oder als eigenes Fenster, je nach Einstellung.
Edit: Verwendest Du das Zusatzscript: Appmenu_edit.uc.js, ich nicht.
Denn damit funktioniert es anscheinend nicht.
Mfg.
Endor
Bei mir sitzen die Buttons zu hoch und die Bilder sind verschwommen.
Beim Script von Mira_Belle ist es bei mir genau so.
Mfg.
Endor
Nein weiter nichts. Hier habe ich den Button in der Tabbar.
Das habe ich eben bei Github auf 1 navbar geändert.
Hallo bege
Vielen Dank für Deine Version.
Habe die jetzt mal bei mir hoch geladen.
Hinweis:
Ich habe mit milupo Hilfe noch den Eintrag zum Öffnen der Entwickler Werkzeuge hinzugefügt.
Zeile 24 habe ich so angepasst
fileManager: '',
// fileManager: 'C:\\Program files\\FreeCommander XE\\FreeCommander.exe',
// Parameter für Dateimanager oder leer ('')
Des weiteren habe ich beim Eintrag Beenden ein identisches aber größeres Symbol eingebaut.
Finde das past besser zu den anderen.
Was sagst Du dazu?
Mfg.
Endor
Mira_Belle
Ohne Appmenu_edit.uc.js vorläufig.
Mfg.
Endor
Web-Entwickler
Auch von mir vielen Dank für den Code.
An dem versuche ich mich schon den ganzen Nachmittag.
Mit Deinem passt es, und funktioniert bestens.
Vielen Dank.
Mfg.
Endor
Auweia da hätte ich eigentlich selbst drauf kommen müssen.
Hand vors Gesicht hau.
Vielen Dank, Sören Hentzschel und milupo.
Mfg.
Endor
Es gibt noch ein Script vom selben Autor:
// ==UserScript==
// @name patchForBug1904014_allow_search_oneoff_with_empty_text.uc.js
// @description undoing Bug 1904014 - Remove function to do an empty search using the search bar one-off buttons.
// @include chrome://browser/content/browser.xhtml
// @compatibility 129
// @version 2024/07/14 fix add search engene button
// @version 2024/07/8
// ==/UserScript==
(function() {
let func = SearchOneOffs.prototype._on_click.toString();
func = func.replace(
'if (!this.textbox.value) {',
'if (false) {'
);
SearchOneOffs.prototype._on_click = new Function(
func.match(/\(([^)]*)/)[1],
func.replace(/[^{]*\{/, '').replace(/}\s*$/, '')
);
})();
(function() {
let func = SearchOneOffs.prototype._on_command.toString();
func = func.replace(
'if (!this.textbox.value) {',
'if (false) {'
);
func = func.replace(
'if (target.classList.contains("searchbar-engine-one-off-add-engine")) {',
`if (target.classList.contains("searchbar-engine-one-off-add-engine")) {
const lazy = {};
ChromeUtils.defineESModuleGetters(lazy, {
SearchUIUtils: "resource:///modules/SearchUIUtils.sys.mjs",
});`
);
let AsyncFunction = Object.getPrototypeOf(async function(){}).constructor;
SearchOneOffs.prototype._on_command = new AsyncFunction(
func.match(/\(([^)]*)/)[1],
func.replace(/[^{]*\{/, '').replace(/}\s*$/, '')
);
})();
(function() {
let PSAC = document.getElementById("PopupSearchAutoComplete");
//PSAC.addEventListener("popupShowing", event => {
PSAC.addEventListener("click", event => {
if (event.button == 2) {
// Ignore right clicks.
return;
}
let button = event.originalTarget.closest("[class~='searchbar-engine-one-off-add-engine]");
if (button) {
return;
}
button = event.originalTarget.closest(".search-panel-header");
if (!button) {
return;
}
if (!this.searchbar.value) {
BrowserSearch.searchBar.handleSearchCommand(event, Services.search.defaultEngine);
}
});
PSAC.addEventListener("keydown", event => {
if (event.keyCode !== KeyEvent.DOM_VK_RETURN) {
// Ignore right clicks.
return;
}
let button = event.originalTarget.closest(".search-panel-header");
if (!button) {
return;
}
if (!this.searchbar.value) {
BrowserSearch.searchBar.handleSearchCommand(event, Services.search.defaultEngine);
}
});
//}, {once: true});
})();
// this._searchbarEngine = this.querySelector(".search-panel-header");
Alles anzeigen
Wurde eben erst veröffentlicht.
Mfg.
Endor
Ok. Packe das Script bei Thunderbird dazu.
Das andere muss ich mir erst mal in Ruhe durch den Kopf gehen lassen.
Klingt ja eigentlich sehr gut aber die Zeit das so umzusetzen....
Mal sehen.
Trotzdem vielen Dank für Deinen Vorschlag.
Mfg.
Endor
Läuft auch im Thunderbird
Danke für den Hinweis.
milupo
Soll ich das Script auch in den Ordner für Thunderbird Scripte bei Github packen?
Super, ich danke dir.
Gerne. Nochmals danke für Deine Mühe.
Dann lade ich es jetzt hoch.
Edit:
Erledigt - https://github.com/Endor8/userChr…datecheck.uc.js
Mfg.
Endor
Hallo Amsterdammer !
Alles alles Gute zum Geburtstag.
Vor allem viel Gesundheit aber auch viel Glück und Wohlergehen
wünsche ich Dir von ganzen Herzen.
Mfg.
Endor
Mira_Belle
vielen Dank.
Mfg.
Endor
Hallo milupo.
Habe nun eine Info eingebaut und eine Deutsche Beschreibung hinzugefügt.
Schau Dir das bitte mal an ob es so passt:
// ==UserScript==
// @name addons_ver_day_updatecheck.uc.js
// @description Bei about:addons beim Titel der Erweiterung Versionsinfo und Installationsdatum hinzufügen
// @update Anpassung zur Verwendung der ESM-Module mit der Dateiendung .sys.mjs von milupo
// @note Wer vor dem Datum der Installation, einen Text haben möchte, Zeile 40 aktivieren
// @note und Zeile 41 deaktivieren. (// ← entfernen bzw. hinzufügen)
// @include main
// ==/UserScript==
if (typeof window === "undefined" || globalThis !== window) {
this.EXPORTED_SYMBOLS = ["AboutAddonsVerboseChild"];
ChromeUtils.defineESModuleGetters(this, { AddonManager: "resource://gre/modules/AddonManager.sys.mjs", });
try {
ChromeUtils.registerWindowActor("AboutAddonsVerbose", {
child: {
moduleURI: __URI__,
events: {
DOMDocElementInserted: {},
},
},
matches: ["about:addons"],
});
} catch (e) {Cu.reportError(e);}
this.AboutAddonsVerboseChild = class extends JSWindowActorChild {
handleEvent({type}) {
if (type !== "DOMDocElementInserted") return;
const win = this.contentWindow;
const doc = win.document;
doc.addEventListener("view-loaded", () => {
const addons = doc.querySelectorAll(".addon-name");
for (let addon of addons) {
const addonId = addon.querySelector("a")?.href.slice("addons://detail/".length);
if (addonId) AddonManager.getAddonByID(addonId).then(result => {
const {version, updateDate} = result;
const info = doc.createElement("span");
info.style.fontSize = "1rem";
info.style.fontStyle = "normal";
info.style.fontWeight = "900";
info.style.marginInlineEnd = "8px";
// info.textContent = `${version} - Installation: ${updateDate.toLocaleDateString("de-DE")}`;
info.textContent = `${version} - ${updateDate.toLocaleDateString("de-DE")}`;
addon.insertAdjacentElement("afterend", info);
}).catch(err => Cu.reportError(err));
}
});
}
};
}
else {
try {
const fileHandler = Services.io.getProtocolHandler("file").QueryInterface(Ci.nsIFileProtocolHandler);
const scriptFile = fileHandler.getFileFromURLSpec(Components.stack.filename);
const resourceHandler = Services.io.getProtocolHandler("resource").QueryInterface(Ci.nsIResProtocolHandler);
if (!resourceHandler.hasSubstitution("about-addons-verbose-ucjs")) {
resourceHandler.setSubstitution("about-addons-verbose-ucjs", Services.io.newFileURI(scriptFile.parent));
}
ChromeUtils.import(`resource://about-addons-verbose-ucjs/${scriptFile.leafName}?${scriptFile.lastModifiedTime}`);
} catch (e) {Cu.reportError(e)}
}
Alles anzeigen
Mfg.
Endor
milupo .
Vielen vielen Dank.
Funktioniert bestens. In Firefox 129, Firefox 130b1 und Firefox 131 Nightly getestet.
Darf ich die bei mir in Github hochladen?
Sollten wir im Kopfbereich einen Hinweis auf Deine Änderungen einfügen?
Mfg.
Endor
Genau das ist es.
Wie gesagt, ohne Änderungen funktioniert es, warum auch immer.
Mit nicht.
Hast du in about:config:
browser.addons.showVersionInAboutAddons
extensions.showVersionInAboutAddons
auf true? Bei mir gibt es die übrigens nicht.
Mfg.
Endor