Ich vermute, dass es es einen anderen Ansatz, bzw. ein anderes Script braucht?
Ich sehe das genau so.
Vielleicht kann uns aborix mal wieder helfen.
Mfg.
Endor
Ich vermute, dass es es einen anderen Ansatz, bzw. ein anderes Script braucht?
Ich sehe das genau so.
Vielleicht kann uns aborix mal wieder helfen.
Mfg.
Endor
Hallo Horstmann .
Wie Dharkness
schon geschrieben hat.
Es handet sich um JavaScript Dateien daher also die Endung js.
Unsere hier sollten die Endung uc.js haben.
Wichtig: Hast Du die Vorarbeiten zur Verwedung von Scripten
wie in meiner oben verlinkten Anleitung gemacht?
Das ist Voraussetzung dass man Scripte verwenden kann.
Ich würde Dir noch ein weiteres Script empfehlen, dieses fügt eine
Schaltfläche zum neu starten von Firefox in die Navbar ein damit
kann Firefox neu gestartet werden und dabei wird zusätzlich der
ScriptCache gelöscht.
Script: RestartFirefox_plus.uc.js
//RestartFirefox_plus.uc.js
(function() {
if (location != 'chrome://browser/content/browser.xhtml') return;
try {
CustomizableUI.createWidget({
id: 'restart-button',
type: 'custom',
defaultArea: CustomizableUI.AREA_NAVBAR,
onBuild: function(aDocument) {
var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
var props = {
id: 'restart-button',
class: 'toolbarbutton-1 chromeclass-toolbar-additional',
removable: false,
label: 'Neustart',
tooltiptext: 'Neustart (mit Rechts- und Mittelklick wird userChrome.js-Cache geleert)',
style: 'list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8%2F9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89%2BbN%2FrXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz%2FSMBAPh%2BPDwrIsAHvgABeNMLCADATZvAMByH%2Fw%2FqQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf%2BbTAICd%2BJl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA%2Fg88wAAKCRFRHgg%2FP9eM4Ors7ONo62Dl8t6r8G%2FyJiYuP%2B5c%2BrcEAAAOF0ftH%2BLC%2BzGoA7BoBt%2FqIl7gRoXgugdfeLZrIPQLUAoOnaV%2FNw%2BH48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl%2FAV%2F1s%2BX48%2FPf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H%2FLcL%2F%2Fwd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s%2BwM%2B3zUAsGo%2BAXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93%2F%2B8%2F%2FUegJQCAZkmScQAAXkQkLlTKsz%2FHCAAARKCBKrBBG%2FTBGCzABhzBBdzBC%2FxgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD%2FphCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8%2BQ8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8%2BxdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR%2BcQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI%2BksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG%2BQh8lsKnWJAcaT4U%2BIoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr%2Bh0uhHdlR5Ol9BX0svpR%2BiX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK%2BYTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI%2BpXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q%2FpH5Z%2FYkGWcNMw09DpFGgsV%2FjvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY%2FR27iz2qqaE5QzNKM1ezUvOUZj8H45hx%2BJx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4%2FOBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up%2B6Ynr5egJ5Mb6feeb3n%2Bhx9L%2F1U%2FW36p%2FVHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm%2Beb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw%2B6TvZN9un2N%2FT0HDYfZDqsdWh1%2Bc7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc%2BLpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26%2FuNu5p7ofcn8w0nymeWTNz0MPIQ%2BBR5dE%2FC5%2BVMGvfrH5PQ0%2BBZ7XnIy9jL5FXrdewt6V3qvdh7xc%2B9j5yn%2BM%2B4zw33jLeWV%2FMN8C3yLfLT8Nvnl%2BF30N%2FI%2F9k%2F3r%2F0QCngCUBZwOJgUGBWwL7%2BHp8Ib%2BOPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo%2Bqi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt%2F87fOH4p3iC%2BN7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi%2FRNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z%2Bpn5mZ2y6xlhbL%2BxW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a%2FzYnKOZarnivN7cyzytuQN5zvn%2F%2FtEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1%2B1dT1gvWd%2B1YfqGnRs%2BFYmKrhTbF5cVf9go3HjlG4dvyr%2BZ3JS0qavEuWTPZtJm6ebeLZ5bDpaql%2BaXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO%2FPLi8ZafJzs07P1SkVPRU%2BlQ27tLdtWHX%2BG7R7ht7vPY07NXbW7z3%2FT7JvttVAVVN1WbVZftJ%2B7P3P66Jqun4lvttXa1ObXHtxwPSA%2F0HIw6217nU1R3SPVRSj9Yr60cOxx%2B%2B%2Fp3vdy0NNg1VjZzG4iNwRHnk6fcJ3%2FceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w%2B0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb%2B%2B6EHTh0kX%2Fi%2Bc7vDvOXPK4dPKy2%2BUTV7hXmq86X23qdOo8%2FpPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb%2F1tWeOT3dvfN6b%2FfF9%2FXfFt1%2Bcif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v%2B3Njv3H9qwHeg89HcR%2FcGhYPP%2FpH1jw9DBY%2BZj8uGDYbrnjg%2BOTniP3L96fynQ89kzyaeF%2F6i%2FsuuFxYvfvjV69fO0ZjRoZfyl5O%2FbXyl%2FerA6xmv28bCxh6%2ByXgzMV70VvvtwXfcdx3vo98PT%2BR8IH8o%2F2j5sfVT0Kf7kxmTk%2F8EA5jz%2FGMzLdsAAAAEZ0FNQQAAsY58%2B1GTAAAAIGNIUk0AAHolAACAgwAA%2Bf8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAN8SURBVHjaVJFNTBxlAIafb2Z29gd2l4VdYCkokAUt1AJplQRTrVqjUWMPPWHSCzb21IOn9qIHY2xMahoTTb00NmkUm5qAjdpUI61VaCxCpCVYixt%2ByvKzCwu7LDs7zMw3HmhM%2Bt6fJ0%2FyCp69wiOzZBCPcqSmIXg0HPHuC4R8nkLWyOXyYiIzfuVHzMIA%2BZsLtH18EApntUdhpzUSD5577nDLi%2FGWKjx%2BHVfR8HpFwNwsxTMzza%2BOXJ1%2B58Ev2sVEV%2ByEawXqxf8FllNWEQ9ePXzsqQOecIDU8jampSAVD76Al2BIIx4Dv2Nz7%2FYq%2B5%2BP8sNXE6WdAhdQlOM9rzUdaGiN8M9UjnKvQjzuA0UjV3AxDIcHywqRoEbXoVrKgyBtKXYEUvprmiN9oaoyvr9wl62NHJbtJeDzOo17YmprVzWOppLO2RRNwf1FSOzSUAXsCIR4QdP13UPfjhUde2mjuBXUjcXNEabOnJmq7Y4Nd7z1fu%2BJ%2FR2Jpgrm0jauAI8GlnSlBi4I0bO6sLBWHc9esxRdmjOZf5n%2B5CLWzCzOvsbKupBZ1xgmElUoC%2BgoKtRGQfNomoaND8P8XS%2Bby1olO7O6GHTl1DejGDOrNB%2BvpO7I%2Ba31%2FDP9Z28YUmqoqhCKcG2EYD6ZMUTojZ8WHmsqD%2BI6wnWFajugCkuuZaV%2FZS47wp99R7E3LbxPV6rtr7dV1pmyuBWs3hr7dZ380LC2tzseffvUHm86C1JC2A%2FrGcn509cn%2BPvTk9ibc1R06qL91Ms1CadF000ll9rVS2VykLzVr0lHOgtpuJ9yUFyXxqhKZjbH2nJRI9IZwyw2kXjvXV%2FIOWgaBcc2a%2BtjdVXR1J3iBDx8QUpQUJAuJJclseogxz441H5vrPO72cm0VSyVPJq27ZaHm8ST3Y0M9d9Kkr19A1A1x4VIObTGBfNrsJ5XmE9b6KqgvrOGhr1Vns2sgeNIkXiigvHf1liZuHWZYjINSEXRVLewZjN6bYmYbvN4rcDvVzFKLnOpErMLBpvbklClznyyyPDA6DjTX3wJWICr%2Bnb3ffjXSGpl5Nxnn88uh2ORUCBaHfVQU%2BsjVuGhKqJT5lFYShr8fGH4j42bH53EnJ4EtgEEPQOTzHx9mqXLl9AT9TS82RvreOmVcMTXVh4JhIr5kp3LFu6u3Lk%2ByMylQazU3ENYAvw3AFUTimFqj5i7AAAAAElFTkSuQmCC)',
onclick: 'if (event.button == 0) { \
Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit); \
}; \
if (event.button == 1 || event.button == 2) { \
Services.appinfo.invalidateCachesOnRestart(); \
Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit); \
};'
};
for (var p in props)
toolbaritem.setAttribute(p, props[p]);
return toolbaritem;
}
});
CustomizableUI.registerToolbarNode(tb);
} catch(e) { };
var menuitem = document.createXULElement('menuitem');
var props = {
id: 'restartfirefox-fileMenu2',
label: 'Neustart',
tooltiptext: 'Neustart (mit Rechts- und Mittelklick wird userChrome.js-Cache geleert)',
onclick: 'if (event.button == 0) { \
Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit); \
}; \
if (event.button == 1 || event.button == 2) { \
Services.appinfo.invalidateCachesOnRestart(); \
Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit); \
};'
};
for (var p in props)
menuitem.setAttribute(p, props[p]);
document.getElementById('menu_FilePopup').insertBefore(menuitem, document.getElementById('menu_FileQuitItem'));
var pane1 = document.getElementById('appmenuPrimaryPane');
if (pane1) {
menuitem = document.createXULElement('menuitem');
var props = {
id: 'restartfirefox-fileMenu',
class: 'menuitem-iconic',
label: 'Neustart',
tooltiptext: 'Neustart (mit Rechts- und Mittelklick wird userChrome.js-Cache geleert)',
onclick: 'if (event.button == 0) { \
Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit); \
}; \
if (event.button == 1 || event.button == 2) { \
Services.appinfo.invalidateCachesOnRestart(); \
Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit); \
};'
};
for (var p in props)
menuitem.setAttribute(p, props[p]);
pane1.insertBefore(menuitem, document.getElementById('appmenu-quit'));
};
})();
Alles anzeigen
Mfg.
Endor
Hallo Horstmann
Wie oben geschrieben, bei meinem Script kannst Du Icon nehmen was Du möchtest.
Wichtig ist nur, dass es eine Png Datei ist und toolbar.png heißt.
Im Chrome Ordner im Unterordner Icons ablegen und fertig.
Wenn Du einen anderen Ordner verwenden willst, dann Zeile 21 im Script
entsprechend anpassen.
Mfg.
Endor
Hallo Horstmann.
Hier eine Anleitung zur Verwendung von Scripten:
https://github.com/Endor8/userChr…erChrome#readme
Für Dein Anliegen würde ich ein ähnliches Script wie oben vorschlagen:
(function() {
if (location != 'chrome://browser/content/browser.xhtml')
return;
let d1 = document.getElementById("PersonalToolbar");
d1.style.visibility = "collapse";
try {
CustomizableUI.createWidget({
id: 'bookmarkbar-button',
type: 'custom',
defaultArea: CustomizableUI.AREA_NAVBAR,
onBuild: function(aDocument) {
var toolbaritem = aDocument.createXULElement('toolbarbutton');
toolbaritem.onclick = aEvent => onClick(aEvent);
var currentProfileDirectory = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");
var buttonicon = "toolbar.png"
var props = {
id: 'bookmarkbar-button',
class: 'toolbarbutton-1 chromeclass-toolbar-additional',
label: 'Toggle',
tooltiptext: 'Lesezeichenleiste ein- bzw. ausblenden',
style: 'list-style-image: url("' + ("file:" + currentProfileDirectory + "/chrome/icons/" + buttonicon) +'");',
};
for(var p in props)
toolbaritem.setAttribute(p, props[p]);
return toolbaritem;
}
});
} catch(e) {};
// Funktion zum Abfragen der Tastatur ("belauscht" Eingaben)
// Hinweis: Tasten, die anderweitig bereits "abgefangen" werden, ergeben keinen Event
document.addEventListener('keydown', (event) => {
var keyName = event.key;
// Funktion wird ausgeführt, wenn STRG + Alt + l gedrückt wird
if (event.ctrlKey && event.altKey && keyName == 'l') {
onClick();
}
}, false
);
function onClick(aEvent) {
let d1 = document.getElementById("PersonalToolbar");
if (d1.style.visibility == "") {
d1.style.visibility = "collapse";
} else if (d1.style.visibility == "visible") {
d1.style.visibility = "collapse";
} else if (d1.style.visibility == "collapse") {
d1.style.visibility = "visible";
}
}
})();
Alles anzeigen
CSS Code braucht es damit keinen.
Es genügt im Chrome Ordner einen Unterordner anzulegen mit der Bezeichnung:
Icons
Darin dann dieses Symbol abspeichern oder ein eigenes Verwenden.![]()
Wenn Du ein eigenes Verwenden willst ist nur wichtig, dass Du es
toolbar.png nennst und im angegebenen Ordner speicherst.
Bei Problemen frag einfach hier nach.
Schönen Sonntag wünsche ich Dir.
Mfg.
Endor
Ja habe ich gesehen.
Dachte halt vielleicht kannst Du es noch brauchen.
Schönen Abend Dir weiterhin.
Mfg.
Endor
Hallo 2002Andreas.
Ich habe dieses Icon hier auch rot gemacht:
addon-card[addon-id="firefox@tampermonkey.net"] img {
filter: invert(43%) sepia(97%) saturate(7298%) hue-rotate(356deg) brightness(91%) contrast(131%)!important;
}
Vielleicht kannst Du das ja noch brauchen. ![]()
Mfg.
Endor
Happy Birthday Sir Paul MCCartney.
Mfg.
Endor
Am Script kann es nicht liegen, das ist identisch mit meinem und wohl auch dem von Endor.
Genau so ist es. Hier funktioniert es auch einwandfrei.
Hast Du meinen Zusatz oben beachtet:
Schau mal in about:config nach gib oben in die Filterzeile:
userChrome.openbook.open
Hier steht bei beiden true.Wenn bei Dir nicht auf true ändern.
Mfg.
Endor
Hallo Palli
Auch von mir alles Gute zum Geburtstag.
Viele Gesundheit Glück und Erfolg wünsche ich Dir.
Mfg.
Endor
Habe vorhin falsch verstanden. Dachte Du meintest die
Schlagwörter Liste.
Also Speicherort Liste ist hier auch mit deinem CSS Code
aufgeklappt. Speichere eine Änderung bei einem Lesezeichen,
oder speichere ein neues Lesezeichen und lass die Liste aufgeklappt.
Nach dem Speichern sollte sich das Script automatisch merken ob die
einzelnen Listen offen oder geschlossen waren. So ist es hier jedenfalls.
Mfg.
Endor
Schau mal in about:config nach gib oben in die Filterzeile:
userChrome.openbook.open
Hier steht bei beiden true.
Wenn bei Dir nicht auf true ändern.
Mfg.
Endor
Es liegt an Deinem CSS Code.
Das Script selber funktioniert einwandfrei.
Ich musste hier diesen Eintrag aus dem CSS Code in Zeile 12, entfernen:
#editBMPanel_tagsRow > label:nth-child(1)
Dann geht es hier wieder.
Mfg.
Endor
Hallo *Nobbi*
Auch von mir alles alles Gute zum Geburtstag!
Vor allem viel Gesundheit wünsche ich Dir.
Mfg.
Endor
Gerne ![]()
Mfg.
Endor
wie wäre es mit einem Script
:
// ==UserScript==
// @name OpenWith
// @description Fügt dem Kontextmenü ein Menü hinzu, zum Öffnen der aktuelle Seite und eines ausgewählten Links in einem anderen Browser.
// @description und eines ausgewählten Links in einem anderen Browser.
// @version 1.2.1b 69+
// @author y2k
// @include main
// @charset UTF-8
// @namespace http://tabunfirefox.web.fc2.com/
// @note Anwendungssymbol anzeigen
// @note als .uc.js Script umgeschrieben
// ==/UserScript==
(function() {
"use strict";
/*
Vor Verwendung, Pfad auf eigene Umgebung ändern(\ wird durch \\ ersetzt)
Zum Übergeben von Argumenten, wie folgt vorgehen:
C:\\Program Files\\Internet Explorer\\iexplore.exe<>$1 Argument Argument
※ $1 wird in URL umgewandelt
*/
const BrowserPath = {
"Firefox Beta": "C:\\Programme\\Firefox\\Beta64bit\\BetaMultiLoader.exe",
"Firefox Nightly": "C:\\Programme\\Firefox\\firefox-22.0a1.en-US.win64-x86_64\\Fiefox-Test\\NightlyMultiLoader.exe",
"Internet Explorer": "C:\\Program Files\\Internet Explorer\\iexplore.exe",
};
const FlatMenu = false;
const OpenWith = {
start: function() {
const cm = document.getElementById("contentAreaContextMenu");
cm.addEventListener("popupshowing", function(e) {
if (e.target == this) { OpenWith.onpopup(e); }
}, false);
},
createMenu: function() {
if (this.pageItem || this.linkItem) {
return;
}
const contextMenu = document.getElementById("contentAreaContextMenu");
const pageMenu = this.$C("menu", { id: "context-open-with-page", label: "Seite öffnen..." });
contextMenu.insertBefore(pageMenu, contextMenu.querySelector(":scope > #context-bookmarkpage, :scope > #context-savepage"));
const linkMenu = this.$C("menu", { id: "context-open-with-link", label: "Link öffnen..." });
contextMenu.insertBefore(linkMenu, contextMenu.querySelector(":scope > #context-sep-open"));
this.pageItem = this.createMenuItem(pageMenu, "openPage", FlatMenu? "Seite öffnen mit $1 ":" Öffnen mit $1");
this.linkItem = this.createMenuItem(linkMenu, "openLink", FlatMenu? "Link öffnen mit $1 ":" Öffnen mit $1");
},
createMenuItem: function(menu, method, format) {
const frag = document.createDocumentFragment();
let menuitem = [];
for (let i of Object.keys(BrowserPath)) {
const item = this.$C("menuitem", {
label: format.replace("$1", i),
class: "menuitem-iconic",
image: "moz-icon:file:///" + BrowserPath[i].split("<>")[0] + "?size=16",
value: JSON.stringify([ method, i ]),
});
item.addEventListener("command", this, false);
frag.appendChild(item);
menuitem[menuitem.length] = item;
}
if (!FlatMenu) {
const menupopup = this.$C("menupopup");
menupopup.appendChild(frag);
menu.appendChild(menupopup);
menuitem = [ menu ];
}
else {
const parent = menu.parentNode;
parent.insertBefore(frag, menu);
parent.removeChild(menu);
}
return menuitem;
},
$C: function(tag, attrs) {
const elem = document.createXULElement(tag);
if (attrs) {
for (let key of Object.keys(attrs))
elem.setAttribute(key, attrs[key]);
}
return elem;
},
onpopup: function(e) {
this.createMenu();
const isHtml = /^(https?|file):/.test(gBrowser.currentURI.spec);
const pageItemHidden = !isHtml || gContextMenu.onLink || gContextMenu.onTextInput;
const linkItemHidden = !isHtml || !gContextMenu.onLink || gContextMenu.onTextInput;
const pageItem = this.pageItem;
for (let i = 0, l = pageItem.length; i < l; i++) {
pageItem[i].hidden = pageItemHidden;
}
const linkItem = this.linkItem;
for (let i = 0, l = linkItem.length; i < l; i++) {
linkItem[i].hidden = linkItemHidden;
}
},
handleEvent: function(event) {
if (event.type === "command") {
const [ method, key ] = JSON.parse(event.originalTarget.getAttribute("value"));
const url = method === "openPage"? gBrowser.currentURI.spec: gContextMenu.linkURL;
this.launch(BrowserPath[key], url);
}
},
launch: function(browserPath, openURL) {
let [ path, args ] = browserPath.split("<>");
if (args) {
args = args.split("^^").map(a => a.replace("$1", openURL));
} else {
args = [ openURL ];
}
const file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile);
file.initWithPath(path);
const process = Cc['@mozilla.org/process/util;1'].createInstance(Ci.nsIProcess);
process.init(file);
process.run(false, args, args.length, {});
},
};
OpenWith.start();
})();
Alles anzeigen
In Zeile 22, 23 und 24 nicht vergessen die Bezeichnung und den Pfad auf Dein System anzupassen.
Wenn du noch mehr Browser haben solltest entsprechen weitere Zeilen einfügen.
Mfg.
Endor
Vangelis im Alter von 79 Jahren gestorben
R.I.P.
Mfg.
Endor
Habe die Änderung mal nach Github übertragen:
Mfg.
Endor
Nur als Hinweis zum Script noch, Mittelklick oder Rechtsklick auf Schaltfläche,
Löscht den Scriptcache und startet Firefox neu , Linksklick startet nur Firefox neu.
Teste das mal, wenn mal ein Script nicht will, rechts klick auf Schaltfläche machen
und schauen ob es beim Neustart dann funktioniert.
Mfg.
Endor
Das verwende ich auch und hier funktioniert es einwandfrei.
Ich habe hier nur in Zeile 17 einen kürzeren Intervall als du.
10 statt 60, Vielleicht liegt es daran. Teste mal meine Version:
// ==UserScript==
// @name MemoryUsage.uc.js
// @namespace http://space.geocities.yahoo.co.jp/gl/alice0775
// @description Memory Usage resident memory in MB
// @include main
// @charset UTF-8
// @author Alice0775
// @compatibility 99+
// @version 2022/03/31 23:00 Clicking on the button minimizes memory and updates the usage display.
// @version 2021/09/18 20:00 no longer available resident-unique from MRM due to Bug 1665318. so use commit size instead of resident-unique size
// @version 2021/09/18 20:00 missing MRM
// @version 2021/06/17 22:00 use ChromeUtils.requestProcInfo
// @version 2021/06/17 19:00
// @version 2021/06/15
// ==/UserScript==
var ucjsMemoryUsage = {
INTERVAL: 10, //Abstand in Sekunden
MRM : Components.classes['@mozilla.org/memory-reporter-manager;1']
.getService(Components.interfaces.nsIMemoryReporterManager),
init: function() {
try {
CustomizableUI.createWidget({
id: 'memoryUsageButton',
type: 'custom',
onBuild: function(aDocument) {
let toolbaritem = aDocument.createXULElement('toolbarbutton');
let props = {
id: 'memoryUsageButton',
class: 'toolbarbutton-1 chromeclass-toolbar-additional',
label: 'MemoryUsage',
tooltiptext: 'Speicher Belegung minimieren',
onclick: 'ucjsMemoryUsage.MRM.minimizeMemoryUsage(()=>{});ucjsMemoryUsage.requestMemory()'
};
for (let p in props)
toolbaritem.setAttribute(p, props[p]);
return toolbaritem;
}
});
} catch(e) {}
style = `#memoryUsageButton .toolbarbutton-text {
display: inline-block !important;
font-weight: bold !important;
font-size: 13px !important;
}
#memoryUsageButton .toolbarbutton-icon {
display: none !important;
}`
let sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService);
let uri = makeURI('data:text/css;charset=UTF=8,' + encodeURIComponent(style));
if(!sss.sheetRegistered(uri, sss.AUTHOR_SHEET))
sss.loadAndRegisterSheet(uri, sss.AUTHOR_SHEET);
window.addEventListener("unload", this, false);
window.setInterval(this.requestMemory, this.INTERVAL * 1000);
this.requestMemory();
},
uninit: function() {
window.removeEventListener("unload", this, false);
},
requestMemory: async function() {
let winTop = Services.wm.getMostRecentWindow("navigator:browser");
if (winTop == window) {
let total =0;
const regex = new RegExp("^resident-unique$");
const handleReport = (aProcess, aPath, aKind, aUnits, aAmount) => {
if(regex.test(aPath)) {
//Services.console.logStringMessage("aPath " + aPath);
total += aAmount;
}
};
await new Promise((r) => {
ucjsMemoryUsage.MRM
.getReports(handleReport, null, r, null, false);
}
);
//Services.console.logStringMessage("total " + txt);
let txt = Math.ceil(total/1024/1024);
for (let win of Services.wm.getEnumerator("navigator:browser")) {
if (win.closed || !win.gBrowser) {
continue;
}
let btn = win.document.getElementById("memoryUsageButton");
if (btn)
btn.setAttribute("label", txt + " MB");
}
}
},
handleEvent: function(event) {
switch (event.type) {
case "unload":
this.uninit();
break;
}
}
}
ucjsMemoryUsage.init();
Alles anzeigen
Mfg.
Endor
Welches Script das Wochenlang ging geht neuestes nicht mehr?
Was das Löschen des Scriptcache betrifft
Ich verwende dazu ein Script welches über
Eine Schaltfläche Firefox neu startet und dabei diesen Scriptcache löscht. Ein Klick
Firefox wird neu gestartet und fertig.
Script siehe hier:
Mfg.
Endor