Alle Funktionen funktionieren so wie im Script angegeben.
Auch in Nightly. Daher müsste es passen.
Danke für Deine Mühe.
Mfg.
Endor
Beiträge von Endor
-
-
Danke Sören Hentzschel
Ich habe gesehen, dass weiter unten im Code bereits die Zeile:
event.preventDefault();
vorhanden ist. Daher habe ich oben den Eintrag entfernt.
Code:Code
Alles anzeigenCustomizableUI.createWidget({ id: 'three-ToolBarButton', type: 'custom', onBuild: function(aDocument) { let toolbaritem = aDocument.createXULElement('toolbarbutton'); let props = { id: 'three-ToolBarButton', class: 'toolbarbutton-1 chromeclass-toolbar-additional', label: 'Eigener Button', tooltiptext: 'Linksklick oder Rad ↑ ↓: Neuer Tab | Mittelklick: about: config | Rechtsklick: Ordner chrome', style: 'list-style-image: url(data:image/png;base64,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)', }; for (let p in props) toolbaritem.setAttribute(p, props[p]); toolbaritem.addEventListener('click', event => { event.preventDefault(); if (event.button === 0) { openTrustedLinkIn("about:newtab", "tabshifted"); }; if (event.button == 1) { openTrustedLinkIn("about:config", "tab"); }; if (event.button == 2) { Services.dirsvc.get("UChrm", Ci.nsIFile).launch(); }; }); toolbaritem.addEventListener('wheel', event => { event.preventDefault(); if (event.deltaY < 0) { openTrustedLinkIn("about:newtab", "tabshifted"); } else { openTrustedLinkIn("about:newtab", "tabshifted"); } }); return toolbaritem; } }); } catch(e){}; })();
funktioniert jedenfalls einwandfrei.
Müsste dann ja passen, oder?
Mfg.
Endor -
Sören Hentzschel kann ich gerne machen, wenn Du mir sagst wie
man das ändern muss.
Mfg.
Endor -
Hallo bugger.
Perfekt!!
Funktioniert einwandfrei.
Vielen Dank.
Mfg.
Endor -
Hallo zusammen.
Eine Frage habe hier ein Script welches einen onwheel Teil enthält.
Der funktioniert aber nicht mehr.JavaScript
Alles anzeigen(function() { if (location != "chrome://browser/content/browser.xhtml") return; try { // Zoom-Steuerung, tooltiptext: 'Linksklick oder Rad ↑: vergrößern | Mittelklick: zurücksetzen | // Rechtsklick oder Rad ↓: verkleinern', CustomizableUI.createWidget({ id: 'zoom-control-ToolBarbutton', type: 'custom', onBuild: function(aDocument) { let toolbaritem = aDocument.createXULElement('toolbarbutton'); let props = { id: 'zoom-control-ToolBarbutton', class: 'toolbarbutton-1 chromeclass-toolbar-additional', oncontextmenu: 'return(false);', label: 'Zoom-Steuerung', tooltiptext: 'Linksklick oder Rad ↑: vergrößern | Mittelklick: zurücksetzen | Rechtsklick oder Rad ↓: verkleinern', style: 'list-style-image: url(data:image/png;base64,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)', }; for (let p in props) toolbaritem.setAttribute(p, props[p]); toolbaritem.addEventListener('click', event => { if (event.button == 0) { if (event.button == 0) { FullZoom.enlarge(); }; if (event.button == 1) { FullZoom.reset(); }; if (event.button == 2) { FullZoom.reduce(); }; onwheel: if (event.deltaY < 0) { FullZoom.enlarge(); } else { FullZoom.reduce(); }; } }); for (let p in props) toolbaritem.setAttribute(p, props[p]); return toolbaritem; } }); } catch(e){}; })();
Das original sieht so aus:
JavaScript
Alles anzeigen(function() { if (location != "chrome://browser/content/browser.xhtml") return; try { // Zoom-Steuerung, tooltiptext: 'Linksklick oder Rad ↑: vergrößern | Mittelklick: zurücksetzen | // Rechtsklick oder Rad ↓: verkleinern', CustomizableUI.createWidget({ id: 'zoom-control-ToolBarbutton', type: 'custom', onBuild: function(aDocument) { let toolbaritem = aDocument.createXULElement('toolbarbutton'); let props = { id: 'zoom-control-ToolBarbutton', class: 'toolbarbutton-1 chromeclass-toolbar-additional', oncontextmenu: 'return(false);', label: 'Zoom-Steuerung', tooltiptext: 'Linksklick oder Rad ↑: vergrößern | Mittelklick: zurücksetzen | Rechtsklick oder Rad ↓: verkleinern', style: 'list-style-image: url(data:image/png;base64,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)', onclick: 'if (event.button == 0) { \ FullZoom.enlarge(); \ }; \ if (event.button == 1) { \ FullZoom.reset(); \ }; \ if (event.button == 2) { \ FullZoom.reduce(); \ };', onwheel: 'if (event.deltaY < 0) { \ FullZoom.enlarge(); \ } else { \ FullZoom.reduce(); \ };' }; for (let p in props) toolbaritem.setAttribute(p, props[p]); return toolbaritem; } }); } catch(e){}; })();
Habe ich wohl falsch geändert.
Mfg.
Endor -
Hallo Speravir.
Vielen Dank funktioniert wieder einwandfrei.
Das Script zum aktivieren - deaktivieren von Javascript
lade ich dann auch gleich mit hoch.Vielen Dank für Deine Mühe.
Mfg.
Endor -
Hallo zusammen.
Dieses Script geht hier im Nightly auch nicht mehr richtig:CSS
Alles anzeigen// ==UserScript== // @name moveReloadIntoUrl.uc.js // @description Neuladen Schaltfläche in Adressleiste verschieben // @compatibility Firefox 57 // @author Ryan, GOLF-AT // @include main // @shutdown window.moveReloadIntoURL.unload(); // @homepageURL https://github.com/benzBrake/FirefoxCustomize // @version 1.2.4 // @note 1.2.4 Bug 1880914 Move Browser* helper functions used from global menubar and similar commands to a single object in a separate file, loaded as-needed and Bug 1820534 - Move front-end to modern flexbox // @note 1.2.3 Änderung wird in neuen Fenstern nicht wirksam und kann nicht verwendet werden, wenn Hot-Swapping stattfindet. // @note 1.2.2 Kompatibilität für Firefox 103 // @note 1.2.0 Hot-Swap-fähig, kompatibel mit Nachtmodus und Bilder wurden ins Script integriert // @note 1.1 20220424 Fehler behoben, und Firefox 100 Kompatibel // @note 1.0 20171104 // ==/UserScript== (function () { let { classes: Cc, interfaces: Ci, utils: Cu, results: Cr } = Components; const isGerman = (Services.locale.appLocaleAsBCP47 || Services.locale.getAppLocaleAsBCP47()).includes("de"); if (window.moveReloadIntoURL) { window.moveReloadIntoURL.unload(); delete window.moveReloadIntoURL; } window.moveReloadIntoURL = { handleEvent: function (aEvent) { if (aEvent.type === "MoveReloadIntoUrlUnload") { let window = aEvent.originalTarget, doc = window.document; let RELOADBTN = CustomizableUI.getWidget("reload-button").forWindow(window).node; if (RELOADBTN) RELOADBTN.removeEventListener('DOMAttrModified', this.reloadBtnAttr); let BTN = doc.getElementById("new-stop-reload-button"); if (BTN) BTN.parentNode.removeChild(BTN); if (this.STYLE) { this.sss.unregisterSheet(this.STYLE.url, this.STYLE.type); } window.removeEventListener('MoveReloadIntoUrlUnload', this); if (window.moveReloadIntoURL) delete window.moveReloadIntoURL; } }, init: function () { if (window.moveReloadIntoURL) { this.sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); this.STYLE = { url: Services.io.newURI('data:text/css;charset=UTF-8,' + encodeURIComponent(` @-moz-document url-prefix('chrome://browser/content/browser.x') { #stop-reload-button { display: none; } #new-stop-reload-button { display: flex !important; order: 9999; } #new-stop-reload-button .urlbar-icon { -moz-context-properties: fill, fill-opacity !important; fill: currentColor !important; } } `)), type: this.sss.AGENT_SHEET }; this.sss.loadAndRegisterSheet(this.STYLE.url, this.STYLE.type); } let PABTN = CustomizableUI.getWidget("pageActionButton").forWindow(window).node; let RELOADBTN = CustomizableUI.getWidget("reload-button").forWindow(window).node; let BTN = $C(document, 'hbox', { id: "new-stop-reload-button", class: "urlbar-page-action urlbar-addon-page-action", "tooltiptext": isGerman ? 'Linksklick: Seite neuladen\r\nRechtsklick: Neu laden ohne Cache' : 'Left click: refresh page\nRight click: force refresh page', style: "list-style-image: url('data:image/svg+xml;base64,PCEtLSBUaGlzIFNvdXJjZSBDb2RlIEZvcm0gaXMgc3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhlIE1vemlsbGEgUHVibGljCiAgIC0gTGljZW5zZSwgdi4gMi4wLiBJZiBhIGNvcHkgb2YgdGhlIE1QTCB3YXMgbm90IGRpc3RyaWJ1dGVkIHdpdGggdGhpcwogICAtIGZpbGUsIFlvdSBjYW4gb2J0YWluIG9uZSBhdCBodHRwOi8vbW96aWxsYS5vcmcvTVBMLzIuMC8uIC0tPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9IiNkOTAwMDAiIGZpbGwtb3BhY2l0eT0iMS4wIiBzdHJva2U9IiNkOTAwMDAiIHN0cm9rZS13aWR0aD0iMSIgPgogIDxwYXRoIGQ9Ik0xMC43MDcgNiAxNC43IDZsLjMtLjMgMC0zLjk5M2EuNS41IDAgMCAwLS44NTQtLjM1NGwtMS40NTkgMS40NTlBNi45NSA2Ljk1IDAgMCAwIDggMUM0LjE0MSAxIDEgNC4xNDEgMSA4czMuMTQxIDcgNyA3YTYuOTcgNi45NyAwIDAgMCA2Ljk2OC02LjMyMi42MjYuNjI2IDAgMCAwLS41NjItLjY4Mi42MzUuNjM1IDAgMCAwLS42ODIuNTYyQTUuNzI2IDUuNzI2IDAgMCAxIDggMTMuNzVjLTMuMTcxIDAtNS43NS0yLjU3OS01Ljc1LTUuNzVTNC44MjkgMi4yNSA4IDIuMjVhNS43MSA1LjcxIDAgMCAxIDMuODA1IDEuNDQ1bC0xLjQ1MSAxLjQ1MWEuNS41IDAgMCAwIC4zNTMuODU0eiIvPgo8L3N2Zz4K", onclick: function (e) { let r = CustomizableUI.getWidget("reload-button").forWindow(window).node; e.preventDefault(); if (r && r.getAttribute('displaystop')) gBrowser.stop(); else if (e.button == 2) { gBrowser.reloadWithFlags(Ci.nsIWebNavigation.LOAD_FLAGS_BYPASS_CACHE) } else { if (gBrowser.selectedBrowser._userTypedValue) { e.target.ownerGlobal.openTrustedLinkIn(gBrowser.selectedBrowser._userTypedValue, 'current', { postData: null, triggeringPrincipal: gBrowser.selectedBrowser.contentPrincipal }); } else { gBrowser.reload(); } } } }) BTN.appendChild($C(document, 'image', { class: 'urlbar-icon', })); PABTN.after(BTN); RELOADBTN.addEventListener('DOMAttrModified', this.reloadBtnAttr); this.reloadBtnAttr(); window.addEventListener('MoveReloadIntoUrlUnload', this) }, unload: function () { let windows = Services.wm.getEnumerator('navigator:browser'); while (windows.hasMoreElements()) { let win = windows.getNext(); win.dispatchEvent(new CustomEvent("MoveReloadIntoUrlUnload")); } }, reloadBtnAttr: function (e) { let doc = e ? e.target.ownerDocument : document; btn = doc.getElementById('new-stop-reload-button'); if (btn && (!e || e.attrName == 'displaystop')) { var newVal = e ? e.newValue : doc.getElementById( "reload-button").getAttribute('displaystop'); if (newVal) btn.style.listStyleImage = "url('data:image/svg+xml;base64,PCEtLSBUaGlzIFNvdXJjZSBDb2RlIEZvcm0gaXMgc3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhlIE1vemlsbGEgUHVibGljCiAgIC0gTGljZW5zZSwgdi4gMi4wLiBJZiBhIGNvcHkgb2YgdGhlIE1QTCB3YXMgbm90IGRpc3RyaWJ1dGVkIHdpdGggdGhpcwogICAtIGZpbGUsIFlvdSBjYW4gb2J0YWluIG9uZSBhdCBodHRwOi8vbW96aWxsYS5vcmcvTVBMLzIuMC8uIC0tPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9IiMwMDhjMjMiIGZpbGwtb3BhY2l0eT0iMS4wIiBzdHJva2U9IiMwMDhjMjMiIHN0cm9rZS13aWR0aD0iMS41Ij4KICA8cGF0aCBkPSJtOS4xMDggNy43NzYgNC43MDktNC43MDlhLjYyNi42MjYgMCAwIDAtLjg4NC0uODg1TDguMjQ0IDYuODcxbC0uNDg4IDAtNC42ODktNC42ODhhLjYyNS42MjUgMCAxIDAtLjg4NC44ODVMNi44NyA3Ljc1NGwwIC40OTEtNC42ODcgNC42ODdhLjYyNi42MjYgMCAwIDAgLjg4NC44ODVMNy43NTQgOS4xM2wuNDkxIDAgNC42ODcgNC42ODdhLjYyNy42MjcgMCAwIDAgLjg4NSAwIC42MjYuNjI2IDAgMCAwIDAtLjg4NUw5LjEwOCA4LjIyM2wwLS40NDd6Ii8+Cjwvc3ZnPgo=')"; else btn.style.listStyleImage = "url('data:image/svg+xml;base64,PCEtLSBUaGlzIFNvdXJjZSBDb2RlIEZvcm0gaXMgc3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhlIE1vemlsbGEgUHVibGljCiAgIC0gTGljZW5zZSwgdi4gMi4wLiBJZiBhIGNvcHkgb2YgdGhlIE1QTCB3YXMgbm90IGRpc3RyaWJ1dGVkIHdpdGggdGhpcwogICAtIGZpbGUsIFlvdSBjYW4gb2J0YWluIG9uZSBhdCBodHRwOi8vbW96aWxsYS5vcmcvTVBMLzIuMC8uIC0tPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9IiNkOTAwMDAiIGZpbGwtb3BhY2l0eT0iMS4wIiBzdHJva2U9IiNkOTAwMDAiIHN0cm9rZS13aWR0aD0iMSIgPgogIDxwYXRoIGQ9Ik0xMC43MDcgNiAxNC43IDZsLjMtLjMgMC0zLjk5M2EuNS41IDAgMCAwLS44NTQtLjM1NGwtMS40NTkgMS40NTlBNi45NSA2Ljk1IDAgMCAwIDggMUM0LjE0MSAxIDEgNC4xNDEgMSA4czMuMTQxIDcgNyA3YTYuOTcgNi45NyAwIDAgMCA2Ljk2OC02LjMyMi42MjYuNjI2IDAgMCAwLS41NjItLjY4Mi42MzUuNjM1IDAgMCAwLS42ODIuNTYyQTUuNzI2IDUuNzI2IDAgMCAxIDggMTMuNzVjLTMuMTcxIDAtNS43NS0yLjU3OS01Ljc1LTUuNzVTNC44MjkgMi4yNSA4IDIuMjVhNS43MSA1LjcxIDAgMCAxIDMuODA1IDEuNDQ1bC0xLjQ1MSAxLjQ1MWEuNS41IDAgMCAwIC4zNTMuODU0eiIvPgo8L3N2Zz4K')"; } }, } function $C(aDoc, tag, attrs, skipAttrs) { let d = (aDoc || document); attrs = attrs || {}; skipAttrs = skipAttrs || []; var el = "createXULElement" in d ? d.createXULElement(tag) : d.createElement(tag); return $A(el, attrs, skipAttrs); } function $A(el, obj, skipAttrs) { skipAttrs = skipAttrs || []; if (obj) Object.keys(obj).forEach(function (key) { if (!skipAttrs.includes(key)) { if (typeof obj[key] === 'function') { el.setAttribute(key, "(" + obj[key].toString() + ").call(this, event);"); } else { el.setAttribute(key, obj[key]); } } }); return el; } "canLoadToolbarContentPromise" in PlacesUIUtils ? PlacesUIUtils.canLoadToolbarContentPromise.then(_ => moveReloadIntoURL.init()) : moveReloadIntoURL.init(); })();
ab Zeile 76 gibt es diesen Bereich den man wahrscheinlich ändern muss:
Code
Alles anzeigenonclick: function (e) { let r = CustomizableUI.getWidget("reload-button").forWindow(window).node; e.preventDefault(); if (r && r.getAttribute('displaystop')) gBrowser.stop(); else if (e.button == 2) { gBrowser.reloadWithFlags(Ci.nsIWebNavigation.LOAD_FLAGS_BYPASS_CACHE) } else { if (gBrowser.selectedBrowser._userTypedValue) { e.target.ownerGlobal.openTrustedLinkIn(gBrowser.selectedBrowser._userTypedValue, 'current', { postData: null, triggeringPrincipal: gBrowser.selectedBrowser.contentPrincipal }); } else { gBrowser.reload(); } } }
oncommand gibt es keine nur diesen onclick Bereich.
Wie muss man das ändern?
Mfg.
Endor -
Alice wird antworten sobald er eine funktionierende Version hat.
Geduld ist angesagt.Mfg.
Endor -
Ich schreibe gerade Alice, dem Autor.
Erledigt:ucjsDownloadsStatusModoki.uc.js not works in Firefox 135 and 136 · Issue #90 · alice0775/userChrome.jsDear Alice0775-san. Please excuse me for disturbing you, i tried this Version of your Script ucjsDownloadsStatusModoki.uc.js.…github.comMfg.
Endor -
ja dieser CSS Code gehört dazu, bzw. es steht auch im Script dass er dazu
über userchrome.css geladen werden muss:CSS
Alles anzeigen@charset "utf-8"; /*@version 2023/05/18 fix for firefox113, flex-direction, frex-wrap*/ /*@version 2023/04/25 fix for firefox113, inline-block firefox 113*/ /*@version 2023/03/09 Bug 1820534 - Move front-end to modern flexbox.*/ /*@version 2022/11/24 21:00 Bug 1802142 - Remove no longer used browser-bottombox*/ /*@version 2022/11/20 19:00 107+ wip*/ /*@version 2022/02/16 Bug 1747422 - Remove preprocessor variable use from downloads CSS*/ /*@version 2020/03/13 fix for 74, broken listitem orient due to Bug 1606130 /*@version 2019/12/11 fix for 73 Bug 1601094 - Rename remaining .xul files to .xhtml in browser */ /*@version 2019/10/20 12:30*/ /*FullScreen*/ /*DOMFullScreen*/ :root[inFullscreen] #downloadsStatusModokiBar, :root[inDOMFullscreen] #downloadsStatusModokiBar { display: none !important; } #contentAreaDownloadsView[ucjsDownloadsStatusModoki] { flex-direction: row !important; background-color: var(--in-content-box-background) !important; padding: 0 !important; } #contentAreaDownloadsView[ucjsDownloadsStatusModoki] > stack:first-child { } #ucjsDownloadsStatusModoki{ border-top-width: 1px !important; border-top-style: solid !important; border-top-color: #646473 !important; } #contentAreaDownloadsView[ucjsDownloadsStatusModoki] #downloadsListBox { background-color: #fffff0 !important; flex-direction: row; flex-wrap: wrap; overflow-y: auto !important; scrollbar-width: thin; border: none !important; } #contentAreaDownloadsView[ucjsDownloadsStatusModoki] richlistitem:not([hidden]) { border-width: 0 1px 0 0 !important; border-style: solid !important; border-color: black !important; width: 276px !important; height: 3.0em !important; min-height: 3.0em !important; font-size: 12px !important; } #contentAreaDownloadsView[ucjsDownloadsStatusModoki] .downloadMainArea { } #contentAreaDownloadsView[ucjsDownloadsStatusModoki] .downloadContainer { max-width: 200px !important; } #contentAreaDownloadsView[ucjsDownloadsStatusModoki] .downloadTypeIcon { margin-inline-end: 4px !important; margin-inline-start: 4px !important; } #contentAreaDownloadsView[ucjsDownloadsStatusModoki] .downloadButton { width: 36px !important; padding-inline-end: 4px !important; padding-inline-start: 4px !important; } #contentAreaDownloadsView[ucjsDownloadsStatusModoki] #downloadsListEmptyDescription { flex: 1 !important; }
Deine Version funktioniert nicht richtig. Standardmäßig ist diese Leiste nicht sichtbar.
Sie kann manuell über Ansicht - Symbolleisten ein und ausgeblendet werden bzw.
bei Download öffnet sich diese automatisch. Eintrag unter Ansicht - Symbolleisten fehlt bei
deiner Version und Darstellung passt auch nicht. Werde den Autor mal kontaktieren, mal sehen was er sagt.Trotzdem vielen Dank für Deine Mühe.
Mfg.
Endor -
Hallo Boersenfeger .
Vom Script ucjsDownloadsStatusModoki.uc.js gibt es auch eine neue Version.
Muss ich erst noch fertig machen und hochladen.
Edit:
Das ist die neueste Version davon, aber funktioniert hiernoch nichtnicht richtig.Überhaupt nicht. Unter Ansicht ist kein Eintrag zum ein und ausblenden der
Downloadleiste.Code
Alles anzeigen// ==UserScript== // @name ucjsDownloadsStatusModoki.uc.js // @namespace http://space.geocities.yahoo.co.jp/gl/alice0775 // @description Downloads Status Modoki // @include main // @compatibility Firefox 120 // @author Alice0775 // @note ucjsDownloadsStatusModoki.uc.js.css をuserChrome.cssに読み込ませる必要あり // @version 2023/10/10 00:00 Stop using xml-stylesheet processing instructions // @version 2023/07/17 00:00 use ES module imports // @version 2023/06/20 remove Bug 1780695 - Remove Services.jsm // @version 2023/06/18 21:00 null // @version 2023/05/18 21:00 // @version 2022/11/24 21:00 Bug 1802142 - Remove no longer used browser-bottombox // @version 2022/11/22 Bug 877389 - [meta] Replace calls to Cu.reportError, etc. from browser code, replace with console.error, etc. // @version 2022/11/20 19:00 107+ wip // @version 2022/04/01 23:00 Convert Components.utils.import to ChromeUtils.import // @version 2022/02/16 Bug 1747422 - Remove preprocessor variable use from downloads CSS // @version 2019/12/11 fix for 73 Bug 1601094 - Rename remaining .xul files to .xhtml in browser // @version 2019/10/20 12:30 workaround Bug 1497200: Apply Meta CSP to about:downloads, Bug 1513325 - Remove textbox binding // @version 2019/09/08 19:30 fix scrollbox // @version 2019/05/21 08:30 fix 69.0a1 Bug 1551320 - Replace all createElement calls in XUL documents with createXULElement // @version 2018/10/27 12:00 fix for 64+ // @version 2018/06/12 21:00 fix for private window mode // @version 2018/06/07 12:00 fix file name for history // @version 2018/02/10 12:00 try catch error when DO_NOT_DELETE_HISTORY = true // @version 2017/12/10 12:00 fix error when DO_NOT_DELETE_HISTORY = true // @version 2017/12/10 12:00 remove workaround Bug 1279329. Disable btn while clear list is doing, close button styling for 57. // @version 2016/06/10 12:00 modify style independent of font-family // @version 2016/06/10 07:00 modify style of close button, fix typo // @version 2016/06/10 00:00 Workaround Bug 1279329. adjust some padding // @version 2015/05/08 00:00 remove padding due to Bug 1160734 // @version 2014/03/31 00:00 fix for browser.download.manager.showWhenStarting // @version 2013/12/22 13:00 chromehidden // @version 2013/12/19 17:10 rename REMEMBERHISTOTY to DO_NOT_DELETE_HISTORY // @version 2013/12/16 23:28 fixed initialize numDls // @version 2013/12/16 23:24 open only download added // @version 2013/12/16 23:10 open only download started // @version 2013/12/16 21:20 modify css Windows7 Aero // @version 2013/12/16 21:00 modify css // @version 2013/12/16 19:30 add autocheck false // @version 2013/12/16 18:31 fix pref name // @version 2013/12/16 18:30 // @note // ==/UserScript== var ucjsDownloadsStatusModoki = { _summary: null, _list: null, get downloadsStatusModokiBar() { delete downloadsStatusModokiBar; return this.downloadsStatusModokiBar = document.getElementById("downloadsStatusModokiBar"); }, get toggleMenuitem() { delete toggleMenuitem; return this.toggleMenuitem = document.getElementById("toggle_downloadsStatusModokiBar"); }, init: function() { if (document.documentElement.getAttribute("chromehidden") !="" ) return; ChromeUtils.defineESModuleGetters(this, { Downloads: "resource://gre/modules/Downloads.sys.mjs", }); var style = ` @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul); #ucjsDownloadsStatusModoki { width: 100%; max-height: 100px; height: 3.35em; } `.replace(/\s+/g, " "); var sss = Cc['@mozilla.org/content/style-sheet-service;1'] .getService(Ci.nsIStyleSheetService); var uri = makeURI('data:text/css;charset=UTF=8,' + encodeURIComponent(style)); if(!sss.sheetRegistered(uri, sss.USER_SHEET)) sss.loadAndRegisterSheet(uri, sss.USER_SHEET); /* var sspi = document.createProcessingInstruction( 'xml-stylesheet', 'type="text/css" href="data:text/css,' + encodeURIComponent(style) + '"' ); document.insertBefore(sspi, document.documentElement); sspi.getAttribute = function(name) { return document.documentElement.getAttribute(name); }; */ var toolbar = document.createXULElement("vbox"); toolbar.setAttribute("id", "downloadsStatusModokiBar"); toolbar.collapsed = true; var ref = document.getElementById("fullscreen-and-pointerlock-wrapper"); ref.parentNode.insertBefore(toolbar, ref.nextSibling) // var bottombox = document.getElementById("browser-bottombox"); // bottombox.insertBefore(toolbar, bottombox.firstChild); var browser = toolbar.appendChild(document.createXULElement("browser")); browser.setAttribute("disablehistory", true); browser.setAttribute("remote", false); browser.setAttribute("id", "ucjsDownloadsStatusModoki"); browser.addEventListener("load", function(event){ucjsDownloadsStatusModoki.onload(event)}, true); browser.setAttribute("src", "chrome://browser/content/downloads/contentAreaDownloadsView.xhtml?StatusModoki"); var menuitem = document.createXULElement("menuitem"); menuitem.setAttribute("id", "toggle_downloadsStatusModokiBar"); menuitem.setAttribute("type", "checkbox"); menuitem.setAttribute("autocheck", false); menuitem.setAttribute("label", "Downloads Status Modoki Bar"); menuitem.setAttribute("checked", false); menuitem.setAttribute("accesskey", "D"); //menuitem.setAttribute("oncommand", "ucjsDownloadsStatusModoki.toggleDownloadsStatusModokiBar()"); ref = document.getElementById("menu_customizeToolbars"); ref.parentNode.insertBefore(menuitem, ref.previousSibling); document.getElementById("toggle_downloadsStatusModokiBar").addEventListener("command", () => ucjsDownloadsStatusModoki.toggleDownloadsStatusModokiBar()); // Ensure that the DownloadSummary object will be created asynchronously. if (!this._summary) { this.Downloads.getSummary(this.Downloads.ALL).then(summary => { this._summary = summary; return this._summary.addView(this); }).then(null, console.error); } if (!this._list) { this.Downloads.getList(this.Downloads.ALL).then(list => { this._list = list; return this._list.addView(this); }).then(null, console.error); } window.addEventListener("unload", this, false); }, uninit: function() { window.removeEventListener("unload", this, false); if (this._summary) { this._summary.removeView(this); } if (this._list) { this._list.removeView(this); } }, handleEvent: function(event) { switch (event.type) { case "unload": this.uninit(); break; } }, toggleDownloadsStatusModokiBar: function() { var collapsed = this.downloadsStatusModokiBar.collapsed; this.downloadsStatusModokiBar.collapsed = !collapsed; this.toggleMenuitem.setAttribute("checked", collapsed); }, openDownloadsStatusModoki: function() { this.downloadsStatusModokiBar.collapsed = false; this.toggleMenuitem.setAttribute("checked", true); }, hideDownloadsStatusModoki: function() { this.downloadsStatusModokiBar.collapsed = true; this.toggleMenuitem.setAttribute("checked", false); }, onDownloadAdded: function (aDownload) { var showWhenStarting = true; try { showWhenStarting = Services.prefs.getBoolPref("userChrome.downloadsStatusModoki.showWhenStarting"); } catch(e) {} this.numDls = 0; if (showWhenStarting) { if (this._list) { this._list.getAll().then(downloads => { for (let download of downloads) { if (!download.stopped) this.numDls++; } if (this.numDls > 0) this.openDownloadsStatusModoki(false); }).then(null, console.error); } } }, onSummaryChanged: function () { if (!this._summary) return; if (this._summary.allHaveStopped || this._summary.progressTotalBytes == 0) { var closeWhenDone = false; try { closeWhenDone = Services.prefs.getBoolPref("userChrome.downloadsStatusModoki.closeWhenDone"); } catch(e) {} if (closeWhenDone) { this.hideDownloadsStatusModoki(); } } }, // chrome://browser/content/downloads/contentAreaDownloadsView.xhtml onload: function(event) { var doc = event.originalTarget; var win = doc.defaultView; doc.documentElement.setAttribute("ucjsDownloadsStatusModoki", "true"); var button = doc.createXULElement("button"); button.setAttribute("label", "Clear"); button.setAttribute("id", "ucjs_clearListButton"); button.setAttribute("accesskey", "C"); var ref = doc.getElementById("downloadsListEmptyDescription"); var vbox = doc.createXULElement("vbox"); var box = vbox.appendChild(doc.createXULElement("hbox")); box.appendChild(button); box.appendChild(doc.createXULElement("spacer")).setAttribute("flex", 1); var textbox = doc.createElementNS("http://www.w3.org/1999/xhtml", "input"); textbox.setAttribute("id", "downloadFilter"); textbox.setAttribute("clickSelectsAll", true); textbox.setAttribute("type", "search"); textbox.setAttribute("placeholder", "Search..."); box.appendChild(textbox); var closebtn = doc.createXULElement("toolbarbutton"); closebtn.setAttribute("id", "ucjsDownloadsStatusModoki-closebutton"); closebtn.setAttribute("class", "close-icon"); closebtn.setAttribute("tooltiptext", "Close this bar"); box.appendChild(closebtn); ref.parentNode.insertBefore(vbox, ref.nextSibling); doc.getElementById("ucjs_clearListButton").addEventListener("command", function(event) { win.ucjsDownloadsStatusModoki_clearDownloads(); }); doc.getElementById("downloadFilter") .addEventListener("input", function(event) { win.ucjsDownloadsStatusModoki_doSearch(event.target.value); }); doc.getElementById("ucjsDownloadsStatusModoki-closebutton") .addEventListener("command", function(event) { win.ucjsDownloadsStatusModoki_doClose(); }); /* // xxx Bug 1279329 "Copy Download Link" of context menu in Library is grayed out var listBox = doc.getElementById("downloadsListBox"); var placesView = listBox._placesView; if (placesView) { var place = placesView.place; placesView.place= null; placesView.place = place; } */ win.ucjsDownloadsStatusModoki_clearDownloads = function ucjs_clearDownloads() { var DO_NOT_DELETE_HISTORY = true; /* custmizable true or false */ var richListBox = doc.getElementById("downloadsListBox"); var places = []; function addPlace(aURI, aTitle, aVisitDate) { places.push({ uri: aURI, title: aTitle, visits: [{ visitDate: (aVisitDate || Date.now()) * 1000, transitionType: Ci.nsINavHistoryService.TRANSITION_LINK }] }); } function moveDownloads2History() { if (DO_NOT_DELETE_HISTORY && !PrivateBrowsingUtils.isWindowPrivate(window)) { try { for (let element of richListBox.childNodes) { let download = element._shell.download; let aURI = makeURI(download.source.url); // let aTitle = document.getAnonymousElementByAttribute(element, "class", "downloadTarget").value let aTitle = download.target.path; aTitle = aTitle.match( /[^\\]+$/i )[0]; aTitle = aTitle.match( /[^/]+$/i )[0]; let aVisitDate = download.endTime || download.startTime; addPlace(aURI, aTitle, aVisitDate) } } catch(ex) {} } // Clear List richListBox._placesView.doCommand('downloadsCmd_clearDownloads'); if (DO_NOT_DELETE_HISTORY && !PrivateBrowsingUtils.isWindowPrivate(window)) { try { if (places.length > 0) { var asyncHistory = Components.classes["@mozilla.org/browser/history;1"] .getService(Components.interfaces.mozIAsyncHistory); asyncHistory.updatePlaces(places); } } catch(ex) {} } } var btn = doc.getElementById("ucjs_clearListButton"); btn.setAttribute("disabled", true); moveDownloads2History(); btn.removeAttribute("disabled"); // close toolbar var closeWhenDone = false; try { closeWhenDone = Services.prefs.getBoolPref("userChrome.downloadsStatusModoki.closeWhenDone"); } catch(e) {} if (closeWhenDone) { top.ucjsDownloadsStatusModoki.hideDownloadsStatusModoki(); } }; win.ucjsDownloadsStatusModoki_doSearch = function ucjs_doSearch(filterString) { var richListBox = doc.getElementById("downloadsListBox"); richListBox._placesView.searchTerm = filterString; }; win.ucjsDownloadsStatusModoki_doClose = function ucjs_doClose() { top.ucjsDownloadsStatusModoki.hideDownloadsStatusModoki(); }; } } ucjsDownloadsStatusModoki.init();
Mfg.
Endor -
Hallo 2002Andreas
Habe ich ja gemacht. Aber meine Version ist etwas anders.
Da sind die Schaltflächen frei verschiebbar.
Hat aborix mal eingebaut.Daher klemmt es irgendwo.
Mfg.
Endor -
Nö, zu dritt.
Denn sonst würde meine Version funktionieren.
Wer mag sich das mal anschauen:Code
Alles anzeigen// ==UserScript== // @name externalApplications.uc.js // @namespace ithinc#mozine.cn // @description External Applications // @include main // @compatibility Firefox 3.5.x 3.6.x 17.01 // @author ithinc // @Version Fix by aborix // @Version 20190108.2.0.0 Frei verschiebbare Schaltflächen von aborix // @version 20091216.1.0.0 Final release // @version 20091215.0.0.2 Handle toolbar apps and menu apps separately // @version 20091212.0.0.1 Initial release // ==/UserScript== /* :::: External Applications :::: */ var gExternalApplications = { toolbar: { apps: [ {name: 'Photoshop', path: 'C:\\Program Files (x86)\\Adobe\\Adobe Photoshop CS2\\Photoshop.exe'}, {name: 'Wetter', path: 'C:\\Users\\xxx\\Wetter'}, {name: 'Notepad++', path: 'C:\\Program Files\\Notepad++\\notepad++.exe'}, {name: 'Microsoft Outlook', path: 'C:\\Program Files (x86)\\Microsoft Office\\OFFICE14\\Outlook.exe'}, {name: 'Phoenix Hotel', path: 'C:\\Program Files (x86)\\PCS Phoenix\\Phoenix.exe'}, {name: 'Videolan Player', path: 'C:\\Program Files\\VideoLAN\\VLC\\vlc.exe'}, {name: 'Windows Explorer', path: 'C:\\Windows\\explorer.exe'}, {name: 'WinMergeU', path: 'F:\\Adaten\\Downloads\\Freecomander\\WinMerge-2.14.0\\WinMerge-2.16.12-x64-exe\\WinMerge\\WinMergeU.exe'}, {name: 'Filezilla', path: 'F:\\Adaten\\Downloads\\Filezilla\\FileZilla_3.10.3_win64\\FileZilla-3.56.2\\filezilla.exe'}, {name: 'CarotDAV', path: 'F:\\Adaten\\Downloads\\Dropbox\\CarotDAV1.9.9.portable\\CarotDAV\\CarotDAV.exe'}, {name: 'Pickpick', path: 'F:\\Adaten\\Downloads\\picpick\\picpick.exe'}, {name: 'Profilmanager', path: 'F:\\Adaten\\Downloads\\Firefox\\Profile-Manager\\profilemanager.exe'}, {name: 'Profile', path: 'C:\\Users\\xxx\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles'}, {name: 'FreeCommander', path: 'F:\\Adaten\\Downloads\\FreeComander\\FreeCommanderPortable\\FreeCommanderPortable.exe'}, {name: 'TV Browser', path: 'F:\\Adaten\\Downloads\\TVBrowser\\tvbrowser_3.2.1_bin_transportable\\tvbrowser-transportable\\tvbrowser-transportable.exe'}, {name: 'Radio Sure', path: 'F:\\Adaten\\Downloads\\Radio\\RadioSure.exe'}, ] }, // Menü für Firefox Extras - Externe Anwendungen menu: { apps: [ {name: 'Notepad', path: 'C:\\WINDOWS\\system32\\notepad.exe'}, {name: 'Rechner', path: 'C:\\WINDOWS\\system32\\calc.exe'}, {name: 'DOS', path: 'C:\\WINDOWS\\system32\\cmd.exe'}, {name: 'separator'}, {name: 'UltraSearch', path: 'F:\\Adaten\\Downloads\\FreeComander\\UltraSearch\\UltraSearch.exe'}, {name: 'CarotDAV', path: 'F:\\Adaten\\Downloads\\Dropbox\\CarotDAV1.9.9.portable\\CarotDAV\\CarotDAV.exe'}, {name: 'Windows Explorer', path: 'c:\\windows\\explorer.exe'},/*x?????*/ {name: 'Internet Explorer', path: 'C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE', args: ['%u']}, {name: 'Firefox', path: 'F:\\Adaten\\Downloads\\Firefox'}, {name: 'Videos', path: 'F:\\Video'}, {name: 'Videos2', path: 'F:\\Adaten\\Müll'}, ], id: 'ExternalApplicationsMenu', insertafter: 'menu_openAddons', // 'helpMenu', 'tools-menu' oder 'browserToolsSeparator' label: 'Externe Anwendungen', accesskey: 'A' }, init: function() { this.handleRelativePath(this.toolbar.apps); this.handleRelativePath(this.menu.apps); this.createToolbarbuttons(this.toolbar.apps); if (this.menu.apps.length > 0) { var refNode = document.getElementById(this.menu.insertafter); if (refNode) { var menu = refNode.parentNode.insertBefore(document.createXULElement('menu'), refNode.nextSibling); menu.setAttribute('id', this.menu.id); menu.setAttribute('label', this.menu.label); menu.setAttribute('accesskey', this.menu.accesskey); menu.appendChild(this.createMenupopup(this.menu.apps)); } } }, handleRelativePath: function(apps) { for (var i=0; i<apps.length; i++) { var app = apps[i]; if (app.path) { app.path = app.path.replace(/\//g, '\\'); var ffdir = Cc['@mozilla.org/file/directory_service;1'].getService(Ci.nsIProperties).get('CurProcD', Ci.nsIFile).path; if (/^(\.)/.test(app.path)) { app.path = ffdir + '\\' + app.path; } else if (/^(\\)/.test(app.path)) { app.path = ffdir.substr(0,2) + app.path; } } } }, exec: function(path, args) { args = args || []; for (var i=0; i<args.length; i++) { args[i] = args[i].replace(/%u/g, gBrowser.currentURI.spec); } var file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile); file.initWithPath(path); if (!file.exists()) { Cu.reportError('File Not Found: ' + path); return; } if (!file.isExecutable()) { file.launch(); } else { var process = Cc['@mozilla.org/process/util;1'].createInstance(Ci.nsIProcess); process.init(file); process.run(false, args, args.length); } }, createToolbarbuttons: function(apps) { for (var i=0; i<apps.length; i++) { var app = apps[i]; if (app.name != 'separator') { createButton(app); } }; function createButton(app) { var buttonId = app.name.replace(/ /g, '_').replace(/\+/g, 'Plus') + '-ExtApp-button'; try { CustomizableUI.createWidget({ id: buttonId, 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 attributes = { id: buttonId, class: 'toolbarbutton-1 chromeclass-toolbar-additional', label: app.name, tooltiptext: app.name, image: 'moz-icon:file:///' + app.path + '?size=16', //oncommand: 'gExternalApplications.exec(this.path, this.args);', }; for (var a in attributes) { toolbaritem.setAttribute(a, attributes[a]); toolbaritem.addEventListener('click', event => { if (event.button == 0) { gExternalApplications.exec(this.path, this.args).click(); } }); toolbaritem.path = app.path; toolbaritem.args = app.args; return toolbaritem; } } }); } catch(e) {}; } }, createMenupopup: function(apps) { var menupopup = document.createXULElement('menupopup'); for (var i=0; i<apps.length; i++) { var app = apps[i]; if (app.name == 'separator') { menupopup.appendChild(document.createXULElement('menuseparator')); } else { var item = menupopup.appendChild(document.createXULElement('menuitem')); item.setAttribute('class', 'menuitem-iconic'); item.setAttribute('label', app.name); item.setAttribute('image', 'moz-icon:file://' + app.path + '?size=16'); item.addEventListener ('command', function (event) { if (event.button == 0) { gExternalApplications.exec(this.path, this.args); } }); item.path = app.path; item.args = app.args; return menupopup; } } }; }; gExternalApplications.init();
Mfg.
Endor -
FuchsFan
Teste mal meines:Code
Alles anzeigen// browsertoolbox.uc.js (function() { if (location != 'chrome://browser/content/browser.xhtml') return; try { CustomizableUI.createWidget({ id: 'browser-toolbox-button', type: 'custom', defaultArea: CustomizableUI.AREA_MENUBAR, onBuild: function(aDocument) { var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton'); var props = { id: 'browser-toolbox-button', class: 'toolbarbutton-1 chromeclass-toolbar-additional', label: 'Browser-Werkzeuge', tooltiptext: 'Browser-Werkzeuge', style: 'list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAdUlEQVQokZVSwRHAIAgLPYfoXs7RCTpG53Avt7APrhaFU8gLMEEJAkEQgFbc7IxkVjt0r6Sp7VIVITumBpKt00FA2ThmjXzkfMMWO8EZFSj8LrUyjsG9b9DaJXq+qAIVxEUxtLHpaXE95dj1NcK2rmbwaGJ4Af0tIg00j/6iAAAAAElFTkSuQmCC)', }; for (var p in props) toolbaritem.setAttribute(p, props[p]); toolbaritem.addEventListener('click', event => { if (event.button == 0) { onCommand() } }); return toolbaritem; } }); } catch(e) { }; function onCommand() { var document = event.target.ownerDocument; if (!document.getElementById('menu_browserToolbox')) { let { require } = ChromeUtils.importESModule("resource://devtools/shared/loader/Loader.sys.mjs", {}); require("devtools/client/framework/devtools-browser"); }; document.getElementById('menu_browserToolbox').click(); }; })();
Dafür hat mir Horstmann doch geholfen.
Nochmals vielen Dank dafür.
Mfg.
Endor -
-
Hallo Horstmann .
Leider nein.
Mit dem was Speravir hier geschrieben hat, komme ich nicht klar:BeitragRE: Div. Skripte funktionieren im aktuellem Nightly nicht mehr
[…]
Das kommt so ähnlich zum Beispiel im von mir ganz zu Anfang erwähnten AnimationToggleButton-Skript vor, von dir zuletzt hier aktualisiert (soweit mir bekannt).
Ich hab da bis eben länger dran gesessen. Die Lösung besteht darin, die Funktion onCommand aufzulösen und deren Code in die vom Eventhandler aufgerufene anonyme Funktion einzufügen. In AnimationToggleButton heißt die Funktion onClick, aber das spielt hier keine Rolle.
alt:
(Quelltext, 5 Zeilen)
neu:
(Quelltext, 3 Zeilen)
Speravir15. Januar 2025 um 02:24 Mfg.
Endor -
Ah. Danke für den Hinweis.
-
Das mit dem Symbol hat sich erledigt.
Du hast eine externe Datei eingebunden..... -
Dein Script haut bei mir gleich mehrere Fehler raus:
Code
Alles anzeigenUncaught NS_ERROR_FILE_NOT_FOUND: Component returned failure code: 0x80520012 (NS_ERROR_FILE_NOT_FOUND) [nsIFile.directoryEntries] getCss file:///C:/Users/xxx/AppData/Roaming/Mozilla/Firefox/Profiles/9l0hyy5o.test/chrome/extraconfigmenu.uc.js:427 init file:///C:/Users/xxx/AppData/Roaming/Mozilla/Firefox/Profiles/9l0hyy5o.test/chrome/extraconfigmenu.uc.js:114 extraconfigmenu.uc.js:427 Uncaught NS_ERROR_FILE_NOT_FOUND: Component returned failure code: 0x80520012 (NS_ERROR_FILE_NOT_FOUND) [nsIFile.directoryEntries] getCss file:///C:/Users/xxx/AppData/Roaming/Mozilla/Firefox/Profiles/9l0hyy5o.test/chrome/extraconfigmenu.uc.js:427 init file:///C:/Users/xxx/AppData/Roaming/Mozilla/Firefox/Profiles/9l0hyy5o.test/chrome/extraconfigmenu.uc.js:114 2 extraconfigmenu.uc.js:427 getCss file:///C:/Users/xxx/AppData/Roaming/Mozilla/Firefox/Profiles/9l0hyy5o.test/chrome/extraconfigmenu.uc.js:427 init file:///C:/Users/xxx/AppData/Roaming/Mozilla/Firefox/Profiles/9l0hyy5o.test/chrome/extraconfigmenu.uc.js:114 Uncaught TypeError: menu is null init file:///C:/Users/xxx/AppData/Roaming/Mozilla/Firefox/Profiles/9l0hyy5o.test/chrome/extraconfigmenu.uc.js:89 <anonymous> file:///C:/Users/xxx/AppData/Roaming/Mozilla/Firefox/Profiles/9l0hyy5o.test/chrome/extraconfigmenu.uc.js:567 loadScript file:///C:/Program Files/Mozilla Firefox/userChromeJS/utilities.js:114
Das Schaltflächensymbol wird auch nicht angezeigt.
Mfg.
Endor -
FuchsFan.
Dann müsstest Du bitte Deine Version rein stellen.
Sonst wird es schwer das nachzuvollziehen.Mfg.
Endor