Oh, ja... ich habe den Eintrag entfernt. Danke!
userChrome.js Scripte für den Fuchs (Diskussion)
-
Endor -
12. Mai 2015 um 14:19 -
Erledigt
-
-
Der direkte Pfad für Erweiterungen:
So wie ich Boersi kenne, hat er doch bestimmt ein Skript dafür...


-
hat er doch bestimmt ein Skript dafür.
Und wenn nicht, dann:
JavaScript
Alles anzeigen(function() { if (!window.gBrowser){ return; } try { CustomizableUI.createWidget({ id: 'aboutdebugging', type: 'custom', defaultArea: CustomizableUI.AREA_NAVBAR, onBuild: function(aDocument) { var currentProfileDirectory = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/"); var toolbaritem = aDocument.createXULElement('toolbarbutton'); var props = { id: 'aboutdebugging', class: 'toolbarbutton-1 chromeclass-toolbar-additional', removable: 'true', label: 'about:debugging', accesskey: '', tooltiptext: 'about:debugging', style: 'list-style-image: url("chrome://global/skin/icons/developer.svg");' }; for (var p in props) toolbaritem.setAttribute(p, props[p]); return toolbaritem; } }); CustomizableUI.registerToolbarNode(tb); } catch(e) { }; document.getElementById('aboutdebugging').addEventListener('click', event => { if (event.button === 0) { openTrustedLinkIn('about:debugging#/runtime/this-firefox',"tab"); } }); })(); -
Das folgende Script (gefunden) übernimmt aus der Menüleiste alle Menüs und erstellt in der Navbar einen Button. Wird der angeklickt, so öffnet sich ein Popup mit der Aufstellung der Menüleiste (die ausgeblendet werden kann). Auch können dann die Submenüs aufgerufen werden, mit einer Ausnahme bei Lesezeichen. Ich glaube da fehlt im Script diese Funktion, kann das bitte nachgearbeitet werden.
(sieht noch unschön aus, aber nur zur Ansicht)
JavaScript
Alles anzeigen// ==UserScript== // @name MenubarReplaceWithButton.uc.js // ==/UserScript== (function() { if (location != 'chrome://browser/content/browser.xhtml') return; try { CustomizableUI.createWidget({ id : 'main-menubar_button', type : 'custom', defaultArea : CustomizableUI.AREA_NAVBAR, onBuild : function(aDocument) { let toolbaritem = aDocument.createXULElement('toolbarbutton'); let props = { id : 'main-menubar_button', class : 'toolbarbutton-1 chromeclass-toolbar-additional', removable : false, label : 'Menüleiste', tooltiptext : 'Menüleiste', style : 'list-style-image: url("chrome://global/skin/icons/more.svg");', popup : 'main-menubar_popup' }; for (let p in props) toolbaritem.setAttribute(p, props[p]); return toolbaritem; } }); } catch(e) {}; window.addEventListener("MozAfterPaint", function () { // Erstellen Sie ein Popup-Menü, falls es noch nicht vorhanden ist if (!document.getElementById('main-menubar_popup')) { // Popup-Erstellung let menupopup = document.createXULElement('menupopup'); menupopup.setAttribute('id', 'main-menubar_popup'); document.getElementById('mainPopupSet').append(menupopup); // Menü von der Menüleiste in das Popup verschieben let menubar = document.getElementById('main-menubar'); let cl = menubar.childNodes.length; for (let i = 0; i < cl; ++i) { if (!menubar.firstChild.hasAttribute("command")) { } menupopup.append(menubar.firstChild); } /********* toolbar-menubar *********/ let menu = document.getElementById('main-menubar_popup'); menu.addEventListener("command", event => { switch (event.target.id) { // == edit-menu == case "menu_preferences": openPreferences(undefined); break; // == view-menu == case "menu_pageStyleNoStyle": gPageStyleMenu.disableStyle(); break; case "menu_pageStylePersistentOnly": gPageStyleMenu.switchStyleSheet(null); break; case "repair-text-encoding": BrowserCommands.forceEncodingDetection(); break; case "enterFullScreenItem": case "exitFullScreenItem": BrowserCommands.fullScreen(); break; case "documentDirection-swap": gBrowser.selectedBrowser.sendMessageToActor( "SwitchDocumentDirection", {}, "SwitchDocumentDirection", "roots" ); break; // == history-menu == case "sync-tabs-menuitem": gSync.openSyncedTabsPanel(); break; case "hiddenTabsMenu": gTabsPanel.showHiddenTabsPanel(event, "hidden-tabs-menuitem"); break; case "sync-setup": gSync.openPrefs("menubar"); break; case "sync-enable": gSync.openPrefs("menubar"); break; case "sync-unverifieditem": gSync.openPrefs("menubar"); break; case "sync-syncnowitem": gSync.doSync(event); break; case "sync-reauthitem": gSync.openSignInAgainPage("menubar"); break; case "menu_openFirefoxView": FirefoxViewHandler.openTab(); break; case "hiddenUndoCloseWindow": SessionWindowUI.undoCloseWindow(0); break; // == menu_HelpPopup == // (Duplicated in PanelUI._onHelpCommand) case "menu_openHelp": openHelpLink("firefox-help"); break; case "menu_layout_debugger": toOpenWindowByType( "mozapp:layoutdebug", "chrome://layoutdebug/content/layoutdebug.xhtml" ); break; case "feedbackPage": openFeedbackPage(); break; case "helpSafeMode": safeModeRestart(); break; case "troubleShooting": openTroubleshootingPage(); break; case "menu_HelpPopup_reportPhishingtoolmenu": openUILink(gSafeBrowsing.getReportURL("Phish"), event, { triggeringPrincipal: Services.scriptSecurityManager.createNullPrincipal({}), }); break; case "menu_HelpPopup_reportPhishingErrortoolmenu": gSafeBrowsing.reportFalseDeceptiveSite(); break; case "helpSwitchDevice": openSwitchingDevicesPage(); break; case "aboutName": openAboutDialog(); break; case "helpPolicySupport": openTrustedLinkIn(Services.policies.getSupportMenu().URL.href, "tab"); break; } }); } }); })(); -
2002Andreas nehme ich
Danke!
-
nehme ich
Freut mich wenn du es nutzen willst, war gern geschehen
-
Endor Was machen die Zeilen 98 bis 120 in der neuen Version von ExtensionOptionsMenu.uc.js in deinem Repo?
Ich habe bisher keine Probleme in meiner - in einigem abweichenden - Version mit dem FF 152 gefunden, allerdings nutze ich nicht alle Funktionen des Skripts. Gibt es für die neue Version einen Beitrag hier im Forum? Die Suche nach "ExtensionOptionsMenu" hat nichts neues ergeben.
-
Hallo bege.
Kann ich dir leider auch nicht sagen.
Der Autor hat diese Version, damit funktionieren oben die drei
Schaltflächen im Popupmenü wieder, so hochgeladen.
Ich habe sie nur auf deutsch übersetzt.Quelle: https://u6.getuploader.com/script/
Die Version aus meinem Repo entspricht dieser hier:
ExtensionOptionsMenu330.uc.jses geht um diesen Absatz hier:
Code
Alles anzeigenlet sb = window.userChrome_js?.sb; if (!sb) { sb = Cu.Sandbox(window, { sandboxPrototype: window, sameZoneAs: window, freezeBuiltins: false, }); Cu.evalInSandbox(` Function.prototype.toSource = window.Function.prototype.toSource; Object.defineProperty(Function.prototype, 'toSource', {enumerable : false}) Object.prototype.toSource = window.Object.prototype.toSource; Object.defineProperty(Object.prototype, 'toSource', {enumerable : false}) Array.prototype.toSource = window.Array.prototype.toSource; Object.defineProperty(Array.prototype, 'toSource', {enumerable : false}) `, sb); window.addEventListener('unload', () => { setTimeout(() => { Cu.nukeSandbox(sb); }, 0); }, { once: true }); } this.sb = sb;Vielleicht kann ein Script Kundiger etwas dazu sagen.
Mfg.
Endor -
Endor Danke. Ich habe meine Version mal durchgetestet und da geht mit FF 152.0.4 noch alles.
-