Heißen Dank! Letztendlich reichen mir die Zeilen 116-120. Da habe ich gefunden wo mein Fehler lag. Nu löppt dat wedder - wie man hier so sagt.
Beiträge von grisu2099
-
-
Folgendes Skript tut es leider im Nightly auch nicht mehr...
Ich habe mich schon gemäß Sörens Anleitung "Schema F" selbst daran versucht, bekomme es aber nicht gebacken. Kann wer helfen?
Danke schon mal vorab.
Code
Alles anzeigen// Original-Herkunft: // ==UserScript== // @name External-Aplication.uc.js // @namespace ithinc#mozine.cn // @description External Applications // @include main // @compatibility Firefox 3.5.x // @author ithinc // @version 20091212.0.0.1 Initial release // @version 20170911.0.0.2 Fix by aborix // ==/UserScript== // var ffjsmenu = { type: 'menu', //'menu' or 'button' insertafter: 'menubar-items', apps: [ {name: 'Ordner Skripte', path: 'C:\\Users\\Ralf\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\3g1tv3o7.NIGHTLY\\chrome\\Skripte'}, {name: 'separator'}, {name: 'aa VerticalToolbar.uc.js', path: 'C:\\Users\\Ralf\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\3g1tv3o7.NIGHTLY\\chrome\\Skripte\\aa VerticalToolbar.uc.js'}, {name: 'Bottom Toolbar.uc.js', path: 'C:\\Users\\Ralf\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\3g1tv3o7.NIGHTLY\\chrome\\Skripte\\BottomToolbar.uc.js'}, {name: 'RestartFirefox_plus.uc.js', path: 'C:\\Users\\Ralf\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\3g1tv3o7.NIGHTLY\\chrome\\Skripte\\RestartFirefox_plus.uc.js'}, {name: 'space_and_separator_restorer.uc.js', path: 'C:\\Users\\Ralf\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\3g1tv3o7.NIGHTLY\\chrome\\Skripte\\space_and_separator_restorer.uc.js'}, {name: 'Uhr in Statusleiste.uc.js', path: 'C:\\Users\\Ralf\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\3g1tv3o7.NIGHTLY\\chrome\\Skripte\\Uhr in Statusleiste.uc.js'}, {name: 'Versionsanzeige Nightly.uc.js', path: 'C:\\Users\\Ralf\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\3g1tv3o7.NIGHTLY\\chrome\\Skripte\\Versionsanzeige Nightly.uc.js'}, {name: 'separator'}, {name: 'Menü Skripte.uc.js', path: 'C:\\Users\\Ralf\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\3g1tv3o7.NIGHTLY\\chrome\\Skripte\\Menü Skripte.uc.js'}, init: function() { for (var i=0; i<this.apps.length; i++) { if (!this.apps[i].path) continue; if (!this.apps[i].args) this.apps[i].args = []; this.apps[i].path = this.apps[i].path.replace(/\//g, '\\'); var ffdir = Cc['@mozilla.org/file/directory_service;1'].getService(Ci.nsIProperties).get('CurProcD', Ci.nsIFile).path; if (/^(\\)/.test(this.apps[i].path)) { this.apps[i].path = ffdir.substr(0,2) + this.apps[i].path; } else if (/^(\.)/.test(this.apps[i].path)) { this.apps[i].path = ffdir + '\\' + this.apps[i].path; } } if (this.type == 'menu') { var mainmenu = document.getElementById('main-menubar'); // das war das Original var menu = mainmenu.appendChild(document.createXULElement('menu')); menu.setAttribute('label', 'Skripte'); // Menu = "FF-CSS" // menu.setAttribute('accesskey', 'f'); menu.setAttribute('id', 'ffjs-menu'); var menupopup = menu.appendChild(document.createXULElement('menupopup')); for (var i=0; i<this.apps.length; i++) { menupopup.appendChild(this.createMenuitem(this.apps[i])); } } else { var menubarItems = document.getElementById(this.insertafter); var toolbaritem = menubarItems.parentNode.insertBefore(document.createXULElement('toolbaritem'), menubarItems.nextSibling); toolbaritem.id = 'ExtAppButtons'; toolbaritem.setAttribute("class", "chromeclass-toolbar-additional"); toolbaritem.setAttribute("orient", "horizontal"); for (var i=0; i<this.apps.length; i++) { toolbaritem.appendChild(this.createButton(this.apps[i])); } } }, exec: function(path, 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()) { throw 'File Not Found: ' + path; } if (!file.isExecutable() || args.length==0) { file.launch(); } else { var process = Cc['@mozilla.org/process/util;1'].getService(Ci.nsIProcess); process.init(file); process.run(false, args, args.length); } }, createButton: function(app) { if (app.name == 'separator') return document.createXULElement('toolbarseparator'); var item = document.createXULElement('toolbarbutton'); item.setAttribute('class', 'toolbarbutton-1 chromeclass-toolbar-additional'); item.setAttribute('label', app.name); item.setAttribute('image', 'moz-icon:file:///' + app.path + '?size=16'); item.setAttribute('oncommand', 'ffjsmenu.exec(this.path, this.args);'); item.path = app.path; item.args = app.args; return item; }, createMenuitem: function(app) { if (app.name == 'separator') return document.createXULElement('menuseparator'); var item = document.createXULElement('menuitem'); item.setAttribute('class', 'menuitem-iconic'); item.setAttribute('label', app.name); item.setAttribute('image', 'moz-icon:file:///' + app.path + '?size=16'); item.setAttribute('oncommand', 'ffjsmenu.exec(this.path, this.args);'); item.path = app.path; item.args = app.args; return item; } }; ffjsmenu.init();
Edit: Das Menü erscheint zwar, aber bei Klick auf einen Eintrag wird das betreffende Skript nicht im Editor geöffnet...
-
Es wird nicht einmal gefragt, ob eine eventuell schon existierende Datei überschrieben werden soll.
Hab ich das in deiner Version in #4149 richtig verstanden, daß du da jetzt diese Abfrage eingebaut hast?
-
Im "neuen" Skript, wird der aktuelle Tab überschrieben!
Nö, wird er nicht (hier) nicht... Also mal bei dir suchen.
-
Ist Free! Ansonnsten ein besseres empfehlen!
Den Windows-internen Defender verwenden. Ist als Virenscanner (mindestens) genau so gut und verursacht keine Probleme!
-
Der Unterschied zur vorigen Version: Jetzt öffnet sich bei Klick auf einen Eintrag im Popup auch der betreffende Tab wieder...
-
Besser?
Viel besser!
Danke
-
Verstehe ich es richtig, das im aktiven Firefox ab Version 137 diverse Skripte dann auch hier umgestellt werden müssen?
Jein - schon ab 136...
Du kannst die überarbeiteten Scripte aber jetzt schon einsetzen, sie funktionieren auch schon in 134 - aber eben die nicht geänderten ab 136 nicht mehr.
-
Ich frage mich, wie da grisu2099 und BrokenHeart meinen, dass das Skript funktioniert.
Ganz einfach: Popup gesehen, aber nicht reingeklickt...
-
Eins hab ich noch...
Code
Alles anzeigen(function() { if(location.href != 'chrome://browser/content/browser.xhtml') return; try { CustomizableUI.createWidget({ id: 'Tooltip-button', type: 'custom', defaultArea: CustomizableUI.AREA_NAVBAR, onBuild: function(aDocument) { var button = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton'); var attributes = { id: 'Tooltip-button', class: 'toolbarbutton-1 chromeclass-toolbar-additional', removable: 'true', label: 'Tooltip aktivieren/deaktivieren', tooltiptext: Services.prefs.getBoolPref('browser.chrome.toolbar_tips') ? 'Tooltips anzeigen' : 'Tooltips ausgeblendet', oncommand: '(' + onCommand.toString() + ')()' }; for (var a in attributes) { button.setAttribute(a, attributes[a]); }; function onCommand() { var isEnabled = !Services.prefs.getBoolPref('browser.chrome.toolbar_tips'); Services.prefs.setBoolPref('browser.chrome.toolbar_tips', isEnabled); var windows = Services.wm.getEnumerator('navigator:browser'); while (windows.hasMoreElements()) { let button = windows.getNext().document.getElementById('Tooltip-button'); if (isEnabled) button.setAttribute('tooltiptext', 'Tooltips anzeigen') else button.setAttribute('tooltiptext', 'Tooltips ausgeblendet'); }; }; return button; } }); } catch(e) { }; var css = '#Tooltip-button[tooltiptext="Tooltips ausgeblendet"] {list-style-image: url("file:///F:/ICONS/FF/T-rot.png")}' + '#Tooltip-button[tooltiptext="Tooltips anzeigen"] {list-style-image: url("file:///F:/ICONS/FF/T-grün.png")}'; var stylesheet = document.createProcessingInstruction('xml-stylesheet', 'type="text/css" href="data:text/css;utf-8,' + encodeURIComponent(css) + '"'); document.insertBefore(stylesheet, document.documentElement); })();
Hat da jemand eine Lösung?
-
/* Restart item script for Firefox 89+ by Aris
Du hattest doch schon ein anderes Restart-Script hier gepostet...
// newTabButtonUndoTabList.uc.js
Siehe #109
//SkipToTopAndBottom.uc.js
Siehe #100
-
Das müsste eigentlich funktionieren, tut es aber (bei mir) nicht
Hier läuft es... Danke dafür!
-
Funktioniert hier...
Wenn ich, wie hier in diesem Script, abschreiben kann, kann ich auch Java-Script....
Wieder eins weniger in der Liste...
Ich hab hier noch eins, wo du schon mal dran warst. Kriegst du das jetzt auch wieder hin?
Code
Alles anzeigen// ==UserScript== // @name newTabButtonUndoTabList.uc.js // @description Bei Rechtsklick auf die Neuen Tab Schaltfläche, wird im Kontextmenü // @description der Eintrag zum Wiederherstellen des zuletzt geschlossenen Tabs angezeigt. // @description Von BrokenHeart - camp-firefox.de wieder lauffähig gemacht // @adresse https://www.camp-firefox.de/forum/thema/112673-userchrome-js-scripte-f%C3%BCr-den-fuchs-diskussion/?postID=1223749#post1223749 // @include main // ==/UserScript== (function () { if (!window.gBrowser){ return; } gBrowser.tabContainer.addEventListener('click', function (e) { if (e.originalTarget.id != 'tabs-newtab-button') return; switch (e.button) { case 1: undoCloseTab(0); break; case 2: UCT.makePopup(e); event.preventDefault(); break; } }, false); })(); var UCT = { init: function () { var mp = document.createXULElement("menupopup"); mp.id = "undo-close-tab-list"; mp.setAttribute("onpopupshowing", "UCT.onpopupshowing(event);"); mp.setAttribute("placespopup", true); mp.setAttribute("tooltip", "bhTooltip"); mp.setAttribute("popupsinherittooltip", true); document?.getElementById("mainPopupSet")?.appendChild(mp); }, makePopup: function (e) { if (SessionStore.getClosedTabCountForWindow(window) != 0) { document.getElementById("undo-close-tab-list").openPopupAtScreen(e.screenX +2, e.screenY +2, false); } else { console.log("--- Es gibt keinen Tab, der wiederhergestellt werden kann ---"); } }, onpopupshowing: function (e) { var popup = e.target; while (popup.hasChildNodes()) popup.removeChild(popup.firstChild); let undoItems = SessionStore.getClosedTabDataForWindow(window); undoItems.map(function (item, id) { var m = document.createXULElement('menuitem'); m.setAttribute('label', item.title); m.setAttribute('image', item.image ); m.setAttribute('class', 'menuitem-iconic bookmark-item'); m.setAttribute('oncommand', 'undoCloseTab(' + id + ')'); popup.appendChild(m); }); popup.appendChild(document.createXULElement("menuseparator")); m = document.createXULElement("menuitem"); m.setAttribute("label", "Chronik in der Sidebar öffnen"); m.setAttribute("image", "chrome://browser/skin/history.svg"); m.setAttribute("class", "menuitem-iconic"); m.setAttribute("oncommand", "SidebarUI.toggle('viewHistorySidebar');"); popup.appendChild(m); }, }; setTimeout(function() { UCT.init(); },250);
-
Mal bitte diese Version testen...
Code
Alles anzeigen//ScrollTopAndBottom.uc.js (function() { let menuitem = document.createXULElement('menuitem'); menuitem.id = 'context-to-top'; menuitem.classList.add('menuitem-iconic'); menuitem.setAttribute('tooltiptext' , ''); menuitem.style.listStyleImage='url("file:///F:/ICONS/FF/arrow-top.png")'; let refItem = document.getElementById('context-reload'); refItem.parentNode.insertBefore(menuitem, refItem); //click menuitem.addEventListener('click', () => { if (event.button == 0) { ownerGlobal.gBrowser.selectedBrowser.messageManager.loadFrameScript(' data: , content.scrollTo(0,0) ' , false); } }); })(); (function() { let menuitem = document.createXULElement('menuitem'); menuitem.id = 'context-to-bottom'; menuitem.classList.add('menuitem-iconic'); menuitem.setAttribute('tooltiptext' , ''); menuitem.style.listStyleImage='url("file:///F:/ICONS/FF/arrow-bottom.png")'; let refItem = document.getElementById('context-reload'); refItem.parentNode.insertBefore(menuitem, refItem); //click menuitem.addEventListener('click', () => { if (event.button == 0) { ownerGlobal.gBrowser.selectedBrowser.messageManager.loadFrameScript(' data: , content.scrollTo(0,100000) ' , false); } }); var cssUri = Services.io.newURI('data:text/css,' + encodeURIComponent(css), null, null); var SSS = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService); SSS.loadAndRegisterSheet(cssUri, SSS.AGENT_SHEET); })();
Icons ggf. ändern...
-
so funktioniert mit dieser Version nur Nach unten.
Kann ich bestätigen...
-
Danke milupo - der Button im Menü fehlte in meiner Version oben. Hab mal versucht den einzubauen:
Code
Alles anzeigen// Restart_Firefox.uc.js // RestartFirefoxButtonM.uc.js // v. 0.6 // Source file https://www.camp-firefox.de/forum/thema/126132/?postID=1093563#post1093563 (function() { if (location.href !== 'chrome://browser/content/browser.xhtml') return; try { CustomizableUI.createWidget({ id: 'restart-button2a', type: 'custom', defaultArea: CustomizableUI.AREA_NAVBAR, onBuild: function(aDocument) { var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton'); let props = { id: 'restart-button2a', class: 'toolbarbutton-1 chromeclass-toolbar-additional', label: 'Neustart', tooltiptext: 'Neustart (der userChrome.js-Cache wird geleert)', style: 'list-style-image: url("file:///F:/ICONS/FF/Neustart.png")', }; for (let p in props) toolbaritem.setAttribute(p, props[p]); toolbaritem.addEventListener('click', event => { if (event.button == 1) { Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit); } if (event.button == 0 || event.button == 2) { event.preventDefault(); Services.appinfo.invalidateCachesOnRestart(); Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit); } }); return toolbaritem; } }); } catch(e) { }; // Add "Restart" to menu > file var menuitem = document.createXULElement('menuitem'); var props = { id: 'restartfirefox-fileMenu2', label: 'Neustart', tooltiptext: 'Neustart (mit Rechts- und Mittelklick wird userChrome.js-Cache geleert)', }; menuitem.addEventListener('click', event => { 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')); sss.loadAndRegisterSheet(uri, sss.AUTHOR_SHEET); })();
Gleiches Icon wie oben...
-
Ich habe die Restart-Version aus #33 mal etwas eingedampft (auskommentierte Zeilen weg) und den Teil mit dem Icon umgestellt auf meinen "normalen" Icon-Pfad. wenn jemand testen mag (Pfad in Zeile 20 natürlich anpassen…:
Code
Alles anzeigen// Restart_Firefox.uc.js // RestartFirefoxButtonM.uc.js // v. 0.6 // Source file https://www.camp-firefox.de/forum/thema/126132/?postID=1093563#post1093563 (function() { if (location.href !== 'chrome://browser/content/browser.xhtml') return; try { CustomizableUI.createWidget({ id: 'restart-button2a', type: 'custom', defaultArea: CustomizableUI.AREA_NAVBAR, onBuild: function(aDocument) { var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton'); let props = { id: 'restart-button2a', class: 'toolbarbutton-1 chromeclass-toolbar-additional', label: 'Neustart', tooltiptext: 'Neustart (der userChrome.js-Cache wird geleert)', style: 'list-style-image: url("file:///F:/ICONS/FF/Neustart.png")', }; for (let p in props) toolbaritem.setAttribute(p, props[p]); /* Neu */ toolbaritem.addEventListener('click', event => { if (event.button == 1) { Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit); } if (event.button == 0 || event.button == 2) { event.preventDefault(); Services.appinfo.invalidateCachesOnRestart(); Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit); } }); /* Bis hier */ return toolbaritem; } }); } catch(e) { }; sss.loadAndRegisterSheet(uri, sss.AUTHOR_SHEET); })();
Icon:
-
Im obigen Fall ging es wohl nur darum, dass ihr die gegeben Antworten nicht gefallen haben, was aber ihr Problem ist.
So habe ich die Löschung der Beiträge auch eingeschätzt.
Und ohne die Beiträge haben dann alle anderen keinen Sinn mehr. So wie es jetzt ist, können auch andere User alle Beiträge im Zusammenhang lesen, was ihnen evtl. auch mal helfen kann.
Sehe ich ganz genau so
-
.checkbox-check:hover funktioniert nicht
-
auf den aktuellen Stand bringen
128.5.2 ist die aktuelle ESR...