Hallo edvoldi.
War bei mir am Anfang auch so, der CSS Code wurde geladen, aber die xml Datei nicht.
Daher ist das Fenster leer. Du musst wohl nochmal den Pfad zur xml Datei überprüfen.
Mfg.
Endor
Beiträge von Endor
-
-
Hallo edvoldi.
Im Profilordner einen neuen Ordner mit Namen xml
erstellen. Da packst Du die addonversion_fx57.xml Datei rein.
Dann die CSS Datei in den CSS Ordner in den chrome Ordner packen.
Die CSS Datei muss über die userContent.css importiert werden.
So hat es jefenfalls bei mir funktioniert.
Mfg.
Endor -
nach den chinesisch anmutenden Zeichen? Das scheint wie Code für nen Schalter - ist das so was in der Art???....Das ist eine Beschreibung des „Schalters“ in Japanischer Sprache.
In deutsch sieht es jetzt so aus:
Code// -- config -- TABCONTEXTMENU : true , //Im Tabkontextmenü: anzeigen: true, nicht anzeigen: false CONTEXTMENU : true, //Im Hauptkontextmenü: anzeigen: true , nicht anzeigen: false // -- config end--Mfg.
Endor -
Ja ist hier auch so.
Mfg.
Endor -
Mann kann doch im Script sogar einstellen wo es angezeigt werden soll.
Nur im Tabkontextmenu oder nur im Rechtsklick Kontextmenü oder bei beiden.
In Zeile 25 und 26 wo es nicht erwünscht ist auf false stellen:CodeTABCONTEXTMENU : true , //タブコンテキストメニューに 追加する:[true], しない: false CONTEXTMENU : true, //コンテンツアリアコンテキストメニューに 追加する: true , しない:[false]
Werde d<s im Script noch auf Deutsch übersetzen zum besseren Verständnis.
Mfg.
Endor -
Ist das eine Version von Portable Apps?
ich mache mit die portablen Versionen meiner Füchse immer
selber auf Basis des Portablen Firefox von Caschy.
Damit keinerlei probleme mit diesem Update.
Mfg.
Endor -
wie wäre es mit einem Script:
https://github.com/ardiman/userCh…downloadsstatusDie Basis mus schon vorhanden sein:
siehe dazu: https://www.camp-firefox.de/forum/viewtopi…538&hilit=BasisFunktioniert auch in Firefox 57.
Mfg.
Endor -
-
Betrifft Script aus Beitrag 2, bitte mal diese Version testen,
der Autor hat sie erst vor ein zwei Tagen aktualisiert:Code
Alles anzeigen// ==UserScript== // @name UndoListInTabmenuToo // @namespace http://space.geocities.yahoo.co.jp/gl/alice0775 // @description UndoListInTabmenuToo.uc.js // @include main // @compatibility Firefox 4.0 - 59 // @author Alice0775 // @version 2017/11/18 nsIPrefBranch to nsIPrefBranch // @version 2010/09/18 00:00 4.0b7pre // @version 2009/02/03 13:00 ツールチップにタブ内履歴を表示するようにした // @Note タブやコンテキストメニューにもUndoClose Tab Listを追加するもの // @OriginalCode browser.jsからpopulateUndoSubmenuを拝借し, ごにょごにょした // @version 2010/03/26 13:00 Minefield/3.7a4pre Bug 554991 - allow tab context menu to be modified by normal XUL overlays // @version 2010/03/15 00:00 Minefield/3.7a4pre Bug 347930 - Tab strip should be a toolbar instead // @version 2009/09/09 15:00 中クリック処理 // ==/UserScript== // @version 2009/09/03 22:00 Firegox3.7a1preで動かなくなっていたのを修正(Bug 489925. getElementById should not return anonymous nodes) // @version 2009/08/22 00:00 Firegox3.6 stringbandleの変更による // @version 2009/04/24 00:00 #394759 [Firefox:Session Restore]-Add undo close window feature // @version 2008/10/12 18:00 Fx3.0.4pre中クリックしたときメニューポップアップが閉じないおよびその他fix // @version 2007/10/05 10:00 var UndoListInTabmenu = { // -- config -- TABCONTEXTMENU : true , //タブコンテキストメニューに 追加する:[true], しない: false CONTEXTMENU : true, //コンテンツアリアコンテキストメニューに 追加する: true , しない:[false] // -- config end-- ss: null, get tabContext() { return document.getAnonymousElementByAttribute( gBrowser, "anonid", "tabContextMenu")|| gBrowser.tabContainer.contextMenu; ; }, init: function(){ if (this.TABCONTEXTMENU){ //タブコンテキスト var tabContext = this.tabContext; this.makePopup(tabContext, null, "tabContextUndoList"); } if (this.CONTEXTMENU){ //コンテンツエリアコンテキスト var contextMenu = document.getElementById("contentAreaContextMenu"); var refItem = document.getElementById("context-sep-stop"); this.makePopup(contextMenu, refItem, "ContextUndoList"); } // get closed-tabs from nsSessionStore this._ss = Cc["@mozilla.org/browser/sessionstore;1"]. getService(Ci.nsISessionStore); }, makePopup: function(popup, refItem, id){ var menu; //label const locale = Components.classes["@mozilla.org/preferences-service;1"] .getService(Components.interfaces.nsIPrefBranch).getCharPref("general.useragent.locale"); if (this.getVer() > 3.0) { // "Recently Closed Windows" menu = document.createElement("menu"); menu.setAttribute("id", "historyUndoWindowMenu3"); menu.setAttribute("label", "K\u00FCrzlich geschlossene Fenster"); menu.setAttribute("accesskey", "F"); menu.setAttribute("disabled", "true"); popup.insertBefore(menu, refItem); this.historyUndoWindowPopup3 = menu = menu.appendChild(document.createElement("menupopup")); menu.setAttribute("id", "historyUndoWindowPopup3"); menu.setAttribute("onpopupshowing", "UndoListInTabmenu.populateUndoWindowSubmenu();"); } //UndoClose Tab List 最近閉じたタブ const LABELTEXT = locale.indexOf("ja") == -1?"K\u00FCrzlich geschlossene Tabs":"\u6700\u8fd1\u9589\u3058\u305f\u30bf\u30d6"; //create menu menu = document.createElement("menu"); menu.setAttribute("label", LABELTEXT); menu.setAttribute("accesskey", "T"); if (id) menu.setAttribute("id", id); //menu.setAttribute("disabled", true); var menupopup = document.createElement("menupopup"); if (this.getVer()<3) { menupopup.setAttribute("onpopupshowing", "UndoListInTabmenu.populateUndoSubmenu(this);"); } else if (this.getVer()<3.6) { menupopup.setAttribute("onpopupshowing", "UndoListInTabmenu.populateUndoSubmenu3(this);"); } else { menupopup.setAttribute("onpopupshowing", "UndoListInTabmenu.populateUndoSubmenu36(this);"); } menu.appendChild(menupopup); popup.insertBefore(menu, refItem); //add event listener popup.addEventListener('popupshowing',function(event) { if (UndoListInTabmenu.getVer() > 3.0) UndoListInTabmenu.toggleRecentlyClosedWindows(); // no restorable tabs, so make sure menu is disabled, and return if (UndoListInTabmenu._ss.getClosedTabCount(window) == 0) { menu.setAttribute("disabled", true); //menu.setAttribute("hidden", true); return; } menu.removeAttribute("disabled"); //menu.setAttribute("hidden", false); },false); }, /** * Populate when the history menu is opened (Fx2) */ populateUndoSubmenu: function(undoPopup) { // remove existing menu items while (undoPopup.hasChildNodes()) undoPopup.removeChild(undoPopup.firstChild); // populate menu var undoItems = eval("(" + UndoListInTabmenu._ss.getClosedTabData(window) + ")"); for (var i = 0; i < undoItems.length; i++) { var m = undoPopup.appendChild(document.createElement("menuitem")); m.setAttribute("label", undoItems[i].title); m.setAttribute("value", i); m.setAttribute("oncommand", "undoCloseTab(" + i + ");"); m.setAttribute("onclick", "UndoListInTabmenu._undoCloseMiddleClick(event);"); } // "open in tabs" var bundleService = Cc["@mozilla.org/intl/stringbundle;1"]. getService(Ci.nsIStringBundleService); var stringBundle = bundleService.createBundle("chrome://browser/locale/bookmarks/bookmarks.properties"); undoPopup.appendChild(document.createElement("menuseparator")); m = undoPopup.appendChild(document.createElement("menuitem")); m.setAttribute("label", stringBundle.GetStringFromName("cmd_bm_openfolder")); m.setAttribute("accesskey", stringBundle.GetStringFromName("cmd_bm_openfolder_accesskey")); m.addEventListener("command", function() { for (var i = 0; i < undoItems.length; i++) undoCloseTab(); }, false); }, /** * Re-open a closed tab and put it to the end of the tab strip. * Used for a middle click. * @param aEvent * The event when the user clicks the menu item */ _undoCloseMiddleClick: function PHM__undoCloseMiddleClick(aEvent) { if (aEvent.button != 1) return; undoCloseTab(aEvent.originalTarget.value); gBrowser.moveTabToEnd(); if (!aEvent.ctrlKey) aEvent.originalTarget.parentNode.parentNode.parentNode.hidePopup(); }, /** * Populate when the history menu is opened (Fx3) */ populateUndoSubmenu3: function(undoPopup) { // remove existing menu items while (undoPopup.hasChildNodes()) undoPopup.removeChild(undoPopup.firstChild); // "Open All in Tabs" var strings = gNavigatorBundle; m = undoPopup.appendChild(document.createElement("menuitem")); m.setAttribute("label", strings.getString("menuOpenAllInTabs.label")); m.setAttribute("accesskey", strings.getString("menuOpenAllInTabs.accesskey")); m.addEventListener("command", function() { for (var i = 0; i < undoItems.length; i++) undoCloseTab(); }, false); undoPopup.appendChild(document.createElement("menuseparator")); // populate menu var undoItems = eval("(" + UndoListInTabmenu._ss.getClosedTabData(window) + ")"); for (var i = 0; i < undoItems.length; i++) { var entries = undoItems[i].state.entries; var tooltiptext = ""; for (var j = entries.length - 1; j > -1; j--){ if (j != entries.length - 1) tooltiptext += "\n"; tooltiptext += parseInt(j + 1, 10) + ". " + entries[j].title; } var m = document.createElement("menuitem"); m.setAttribute("tooltiptext", tooltiptext); m.setAttribute("label", undoItems[i].title); if (undoItems[i].image) m.setAttribute("image", undoItems[i].image); m.setAttribute("class", "menuitem-iconic bookmark-item"); m.setAttribute("value", i); m.setAttribute("oncommand", "undoCloseTab(" + i + ");"); m.setAttribute("onclick", "UndoListInTabmenu._undoCloseMiddleClick(event);"); if (i == 0) m.setAttribute("key", "key_undoCloseTab"); undoPopup.appendChild(m); } // "Clear undo close tb list" undoPopup.appendChild(document.createElement("menuseparator")); m = undoPopup.appendChild(document.createElement("menuitem")); m.setAttribute("label", "Liste der letzten Tabs l\u00F6schen"); m.setAttribute("accesskey", "l"); m.addEventListener("command", function() { var max_undo = UndoListInTabmenu.getPref("browser.sessionstore.max_tabs_undo", "int", 10); UndoListInTabmenu.setPref("browser.sessionstore.max_tabs_undo", "int", 0); UndoListInTabmenu.setPref("browser.sessionstore.max_tabs_undo", "int", max_undo); if (max_undo != UndoListInTabmenu.getPref("browser.sessionstore.max_tabs_undo", "int", 10)) UndoListInTabmenu.setPref("browser.sessionstore.max_tabs_undo", "int", max_undo); }, false); }, /** * Populate when the history menu is opened (Fx3.6) */ populateUndoSubmenu36: function(undoPopup) { // remove existing menu items while (undoPopup.hasChildNodes()) undoPopup.removeChild(undoPopup.firstChild); // "Open All in Tabs" var strings = gNavigatorBundle; m = undoPopup.appendChild(document.createElement("menuitem")); m.setAttribute("label", strings.getString("menuRestoreAllTabs.label")); //m.setAttribute("class", "menuitem-iconic bookmark-item"); m.setAttribute("accesskey", "R" /*strings.getString("menuRestoreAllTabs.accesskey")*/); m.addEventListener("command", function() { for (var i = 0; i < undoItems.length; i++) undoCloseTab(); }, false); undoPopup.appendChild(document.createElement("menuseparator")); // populate menu var undoItems = eval("(" + UndoListInTabmenu._ss.getClosedTabData(window) + ")"); for (var i = 0; i < undoItems.length; i++) { var entries = undoItems[i].state.entries; var tooltiptext = ""; for (var j = entries.length - 1; j > -1; j--){ if (j != entries.length - 1) tooltiptext += "\n"; tooltiptext += parseInt(j + 1, 10) + ". " + entries[j].title; } var m = document.createElement("menuitem"); m.setAttribute("tooltiptext", tooltiptext); m.setAttribute("label", undoItems[i].title); if (undoItems[i].image) m.setAttribute("image", undoItems[i].image); m.setAttribute("class", "menuitem-iconic bookmark-item"); m.setAttribute("value", i); m.setAttribute("oncommand", "undoCloseTab(" + i + ");"); m.setAttribute("onclick", "UndoListInTabmenu._undoCloseMiddleClick(event);"); if (i == 0) m.setAttribute("key", "key_undoCloseTab"); undoPopup.appendChild(m); } // "Clear undo close tb list" undoPopup.appendChild(document.createElement("menuseparator")); m = undoPopup.appendChild(document.createElement("menuitem")); m.setAttribute("label", "Liste der letzten Tabs l\u00F6schen"); m.setAttribute("class", "menuitem-iconic bookmark-item"); m.setAttribute("accesskey", "l"); m.addEventListener("command", function() { var max_undo = UndoListInTabmenu.getPref("browser.sessionstore.max_tabs_undo", "int", 10); UndoListInTabmenu.setPref("browser.sessionstore.max_tabs_undo", "int", 0); UndoListInTabmenu.setPref("browser.sessionstore.max_tabs_undo", "int", max_undo); if (max_undo != UndoListInTabmenu.getPref("browser.sessionstore.max_tabs_undo", "int", 10)) UndoListInTabmenu.setPref("browser.sessionstore.max_tabs_undo", "int", max_undo); }, false); }, toggleRecentlyClosedWindows: function PHM_toggleRecentlyClosedWindows() { // enable/disable the Recently Closed Windows sub menu let undoPopup = this.historyUndoWindowPopup3; // no restorable windows, so disable menu if (this._ss.getClosedWindowCount() == 0) this.historyUndoWindowPopup3.parentNode.setAttribute("disabled", true); else this.historyUndoWindowPopup3.parentNode.removeAttribute("disabled"); }, /** * Populate when the history menu is opened */ populateUndoWindowSubmenu: function PHM_populateUndoWindowSubmenu() { let undoPopup = this.historyUndoWindowPopup3; let menuLabelString = gNavigatorBundle.getString("menuUndoCloseWindowLabel"); let menuLabelStringSingleTab = gNavigatorBundle.getString("menuUndoCloseWindowSingleTabLabel"); // remove existing menu items while (undoPopup.hasChildNodes()) undoPopup.removeChild(undoPopup.firstChild); // no restorable windows, so make sure menu is disabled, and return if (this._ss.getClosedWindowCount() == 0) { undoPopup.parentNode.setAttribute("disabled", true); return; } // enable menu undoPopup.parentNode.removeAttribute("disabled"); let undoItems = JSON.parse(this._ss.getClosedWindowData()); // "Open All in Windows" let m = undoPopup.appendChild(document.createElement("menuitem")); m.setAttribute("label", gNavigatorBundle.getString("menuRestoreAllWindows.label")); //m.setAttribute("class", "menuitem-iconic bookmark-item"); m.setAttribute("accesskey", "W"/*gNavigatorBundle.getString("menuRestoreAllWindows.accesskey")*/); m.setAttribute("oncommand", "for (var i = 0; i < " + undoItems.length + "; i++) UndoListInTabmenu.undoCloseWindow();"); undoPopup.appendChild(document.createElement("menuseparator")); // populate menu for (let i = 0; i < undoItems.length; i++) { let undoItem = undoItems[i]; let otherTabsCount = undoItem.tabs.length - 1; let label = (otherTabsCount == 0) ? menuLabelStringSingleTab : PluralForm.get(otherTabsCount, menuLabelString); let menuLabel = label.replace("#1", undoItem.title) .replace("#2", otherTabsCount); let m = document.createElement("menuitem"); m.setAttribute("label", menuLabel); let selectedTab = undoItem.tabs[undoItem.selected - 1]; if (selectedTab.attributes.image) { let iconURL = selectedTab.attributes.image; // don't initiate a connection just to fetch a favicon (see bug 467828) if (/^https?:/.test(iconURL)) iconURL = "moz-anno:favicon:" + iconURL; m.setAttribute("image", iconURL); } m.setAttribute("class", "menuitem-iconic bookmark-item"); m.setAttribute("oncommand", "UndoListInTabmenu.undoCloseWindow(" + i + ");"); if (i == 0) m.setAttribute("key", "key_undoCloseWindow"); undoPopup.appendChild(m); } }, /** * Re-open a closed window. * @param aIndex * The index of the window (via nsSessionStore.getClosedWindowData) * @returns a reference to the reopened window. */ undoCloseWindow: function (aIndex) { let ss = Cc["@mozilla.org/browser/sessionstore;1"]. getService(Ci.nsISessionStore); let window = null; if (ss.getClosedWindowCount() > (aIndex || 0)) window = ss.undoCloseWindow(aIndex || 0); return window; }, getPref: function(aPrefString, aPrefType, aDefault){ var xpPref = Components.classes['@mozilla.org/preferences-service;1'] .getService(Components.interfaces.nsIPrefBranch); try{ switch (aPrefType){ case 'complex': return xpPref.getComplexValue(aPrefString, Components.interfaces.nsILocalFile); break; case 'str': return xpPref.getCharPref(aPrefString).toString(); break; case 'int': return xpPref.getIntPref(aPrefString); break; case 'bool': default: return xpPref.getBoolPref(aPrefString); break; } }catch(e){ } return aDefault; }, setPref: function(aPrefString, aPrefType, aValue){ var xpPref = Components.classes['@mozilla.org/preferences-service;1'] .getService(Components.interfaces.nsIPrefBranch); try{ switch (aPrefType){ case 'complex': return xpPref.setComplexValue(aPrefString, Components.interfaces.nsILocalFile, aValue); break; case 'str': return xpPref.setCharPref(aPrefString, aValue); break; case 'int': aValue = parseInt(aValue); return xpPref.setIntPref(aPrefString, aValue); break; case 'bool': default: return xpPref.setBoolPref(aPrefString, aValue); break; } }catch(e){ } return null; }, //Fxのバージョンを得る //Fxのバージョン getVer: function(){ const Cc = Components.classes; const Ci = Components.interfaces; var info = Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULAppInfo); var ver = parseInt(info.version.substr(0,3) * 10,10) / 10; return ver; } }; if(!('TM_init' in window)) UndoListInTabmenu.init();Wenn es passt geht sie ab nach Github.
Mfg.
Endor -
Nur zwischen Script aus Beitrag 6 und aus Beitrag 7 gibt es einen Unterschied.
6 hat nur die SChaltfläche sonst nichts, bei 7 wird neben der Schatfläche auch noch das entsprechende
Popup mit den Einträgen zum Wiederherstellen angezeigt. So wie es im Tmp Original nun eben ist.
Wie Du aber schon sagst ist das SCript sehr alt und müsste umbedingt auf den neuesten Stand
gebracht werden. So funktioniert es nur noch in Firefox 57 danach nicht mehr.
Nur reicht da mein Wissen leider nicht dazu. Da müsste jemand anderes sich das mal anschauen.
Mfg.
Endor -
Bitte mal testen:
CSSmenu[label="Screengrab!"]{ -moz-binding: url("chrome://global/content/bindings/menu.xml#menu-iconic") !important; list-style-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAC+0lEQVR42mL8//8/AyUAIICYGCgEAAHEMn/+fIZfv34x6OrqMnz58oXhw4cPDD9+/GD4+fMnw8mTJxmEhIRqzM3Nm0Fi3759Y9i/f38lUK7j5cuXYAMAAgivCz59+sRgY2PTLCUlxcDFxcWgoKDAoKGh0Q6yEAYAAogFqlD+48ePRV+/fn0PpBm+f//O8Pnz50/KysoRN27cYDh06BDD79+/Gf78+QOmgS65BdSjx8fH9wMggFhev37Nn5qa+kBQUBDFdqBhYC+BXPEBaOi3r9/BBrCxsQC9Jai6fv2G76tXr+YCCCAWQ0PDVJDCmzdvgv394sULhufPn4MNYGRkZPj95y/Dmxf3GZ4/u8bAJyDCwMenzPCPgZGBg4ONgZ2dPRMggJiATnoH8hPI2Xfv3mV48OABmM3BwQE05BvDmeM7GH7/52TQsuhmYONxY3j96jJQzR2Gz0BLgRZ8AAggFqDt/9jY2BgePnzI8PfvXwZhYWEwzQC05dbNiwyKaiYMDv4TGZ69YGC4/86W4TMjF4Oo8AYGhr//GIAp6B9AADH9+/eP4d69e2BbmZiYwFEKCqgvQC98en+fQUQ6jOEpUPPObacYPj4/ysDIpg+U+8/w9fsXhn9AiwACiOndu3dMoDgGaQbZDPI3yFBQCuXk5GN48ew8w8nzDAzMjH8ZuNj/Mfz8ep7h35+fYPk/f/4yAQQQ06lTp/hFRETAIQ/SCAppEGZnY2Xg5JVn+Pp6C8Pnx7MY/jGyMXx4f5WB9ddGhr8M7Aw8PLxA9X/5AQKIGejcy/r6+lWioqJgA1hYWBiYmZnBLhEWFmH4+PkHAx/LBQbW/8cYuJiuAf3NxMDLK8rw5MkTBmCaCQYIIEZgygKaxmMpLi5eCDTsA8gbMJcAwX+g15i+//jJxMHO/P/nz7+Mv3//+gd0Pj8wyvs5OTmPAwQQo7GxMQ8wZX0BpQGYzSAAYoPTOjBs0MXASRjoUqBBPAABxAIkvoDSORATzJnIWR/I/gekvgAEGACtXXxs5eDnPAAAAABJRU5ErkJggg==") !important; margin-left:5px !important; } menu[label="Screengrab!"]>.menu-iconic-text{ margin-left:10px !important;}Werte wenn dann noch für dich apassen.
Mfg.
Endor -
ich habe hier 32 eingegeben.
Funktioniert bestens. Habe hier per CSS alles breiter gemacht so habe ich jetzt vier Reihen
a je 8 Kacheln.Mfg.
Endor -
Hallo Speravir.
Es werden schrittweise immer mehr Unterstützungen für Scripte aus Firefox entfernt.
Daher müssen dann eben die Scripte wieder und wieder angepasst werden.
Bei manchen wird auch nichts mehr gehen. Mal sehen was wird.
Mfg.
Endor -
Glaube ich habe es geschafft, das originale Script wieder zum laufen zu bringen:
Script:Code
Alles anzeigen// ==UserScript== // @name UndoCloseTabBtn.uc.js // @namespace UndoCloseTab@gmail.com // @description 恢复已关闭标签de可移动按钮 // @author defpt // @charset UTF-8 // @Compatibility FF29 - FF57 // @version v2017.11.25 // @note changed this.event.stopPropagation(); to event.stopPropagation(); // ==/UserScript== (function() { var buttonAttrs = { id: "undoclosetab-button", label: "Tabs wiederherstellen", tooltiptext: "Kürzlich geschlossene Tabs wiederherstellen", class: "toolbarbutton-1 chromeclass-toolbar-additional", removable: "true", type: "menu-button", //点击按钮恢复最后一次关闭的标签,如果想左键恢复最后一次关闭的标签,右键打开已关闭标签列表, // 那么改为(context: "_child",) image: "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAgAAAASAAAADAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcuFA06Yy0bw0YcFHIAAAAYAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASXS8cpNejNf+zfCj9TCIWkgAAABkAAAADAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAACAAAAAgAAAAIAAAACAAAAFWk1Hr7nvkj//+BH/7eALP9DGxeDAAAAFAAAAAIAAAAAAAAACB0NCCYfDAc3HAsGOBwMBjgcDAc4HQwHNw0FAzkqDwt0hlIr7vnUVv//2Uv/jVYn8DcXD14AAAAMAAAAAAAAABlqNCLYlGZS+5VoUfeUZkz3lGVJ95VlRveWZUL4iVY19U8hFsOOWzHw/dhf/+3CTP90QSHXAAAAIgAAAAMAAAAjdkMx7/jx5P///Ob///TT///0yf//9sH///66/9vEh/9LIhijLhEOfLiKSvz/7W//y5xH/0UdE3sAAAAMAAAAJHVDMuz49fT////9////8P/o2L3/p31g/bONavuoe1j/VikZlQAAADFnNyHR99R2//DLaP9hMB7CAAAAGAAAACR1QzLs+PX0////////////+fTp/4xeTPw6EASvMBMLbjIXDzYAAAAhVCgYtePAeP//5of/hFQy3wAAACAAAAAkdUMy7Pz7+//g087/q4l9///////49O//mXNj8U0hE6UPBgM8BQIBPWk5Jdby2Jv///Sk/6h8Tu0AAAAjAAAAJHVDMuz+/f3/28zH/1klFNuSal309fHw///////dzcT/pYJy8ZJrWOrbw6H+//XC///ytf+SZ0XlAAAAIQAAACN2QzLu/v39/97Py/9LJBamNRIHfpt1avT28vH//////////v////T///7n////3P/q2bH/ZjIiwwAAABcAAAAabzop3bugl/uwjoP/VSkZkAAAACE2FQ1ddko62cSspP7s5OH//Pr4//v27f/jz73/i2JJ6C4aB00AAAAJAAAACSEPCSkjDgY/NhYMSyURDCMAAAAHAAAADAAAACE9GQ1wZzQk04FPP/h9STn1Vy8WuCQUBUEAAAAOAAAAAQAAAAAAAAABAAAAAwAAAAQAAAACAAAAAAAAAAAAAAADAAAADAAAABsAAAAkAAAAIwAAABYAAAAIAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/g8AAP4HAAD+AwAAgAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACGAQAA//8AAA==", command: "History:UndoCloseTab" }; var uCTBtn = $C('toolbarbutton', buttonAttrs); var popup = uCTBtn.appendChild($C("menupopup", { oncommand: "event.stopPropagation();", onpopupshowing: "parentNode.populateUndoSubmenu();", context: "", tooltip: "bhTooltip", popupsinherittooltip: "true" })); uCTBtn._getClosedTabCount = HistoryMenu.prototype._getClosedTabCount; uCTBtn.populateUndoSubmenu = eval("(" + HistoryMenu.prototype.populateUndoSubmenu.toString().replace(/._rootElt.*/, "") + ")"); // 来自 User Agent Overrider 扩展 const log = function() { dump(Array.slice(arguments).join(' ') + '\n'); }; const trace = function(error) { log(error); log(error.stack); }; const ToolbarManager = (function() { /** * Remember the button position. * This function Modity from addon-sdk file lib/sdk/widget.js, and * function BrowserWindow.prototype._insertNodeInToolbar */ let layoutWidget = function(document, button, isFirstRun) { // Add to the customization palette let toolbox = document.getElementById('navigator-toolbox'); toolbox.palette.appendChild(button); // Search for widget toolbar by reading toolbar's currentset attribute let container = null; let toolbars = document.getElementsByTagName('toolbar'); let id = button.getAttribute('id'); for (let i = 0; i < toolbars.length; i += 1) { let toolbar = toolbars[i]; if (toolbar.getAttribute('currentset').indexOf(id) !== -1) { container = toolbar; } } // if widget isn't in any toolbar, default add it next to searchbar if (!container) { if (isFirstRun) { container = document.getElementById('nav-bar'); } else { return; } } // Now retrieve a reference to the next toolbar item // by reading currentset attribute on the toolbar let nextNode = null; let currentSet = container.getAttribute('currentset'); let ids = (currentSet === '__empty') ? [] : currentSet.split(','); let idx = ids.indexOf(id); if (idx !== -1) { for (let i = idx; i < ids.length; i += 1) { nextNode = document.getElementById(ids[i]); if (nextNode) { break; } } } // Finally insert our widget in the right toolbar and in the right position container.insertItem(id, nextNode, null, false); // Update DOM in order to save position // in this toolbar. But only do this the first time we add it to the toolbar if (ids.indexOf(id) === -1) { container.setAttribute('currentset', container.currentSet); document.persist(container.id, 'currentset'); } }; let addWidget = function(window, widget, isFirstRun) { try { layoutWidget(window.document, widget, isFirstRun); } catch(error) { trace(error); } }; let removeWidget = function(window, widgetId) { try { let widget = window.document.getElementById(widgetId); widget.parentNode.removeChild(widget); } catch (error) { trace(error); } }; let exports = { addWidget: addWidget, removeWidget: removeWidget, }; return exports; })(); ToolbarManager.addWidget(window, uCTBtn, false); document.insertBefore(document.createProcessingInstruction('xml-stylesheet', 'type="text/css" href="data:text/css;utf-8,' + encodeURIComponent('\ #undoclosetab-button menuitem {max-width: 240px;}\ ') + '"'), document.documentElement); function $C(name, attr) { var el = document.createElement(name); if (attr) Object.keys(attr).forEach(function(n) el.setAttribute(n, attr[n])); return el; } })();Damit wird eine Schaltfläche eingeblendet welche wie aus Tmp gewohnt bei klick geschlossene Tabs wieder herstellt
und über eine Menüliste verfügt über welcher man Tabs wieder herstellen kann.
Leider funktioniert es im 58er und 59er Firefox leider nicht.
Mfg.
Endor -
Ich hätte da noch was, ein Script das eine Schaltfläche in die Navbar einbaut, bei klick oder ALT+T
werden die zuletzt geschlossenen Tabs in der entsprechenden Reihenfolge wieder hergestellt.Code
Alles anzeigen(function() { /** Button Start **/ try { CustomizableUI.createWidget({ id: "undoCloseTabbutton", defaultArea: CustomizableUI.AREA_NAVBAR, removable: true, label: "Tabs herstellen", tooltiptext: "Zuletzt geschlossene Tabs wieder herstellen", onClick: function() { undoCloseTab(); }, onCreated: function(aNode) { aNode.style.listStyleImage = 'url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAADgUlEQVR42mL8//8/AyUAIIBYYIzVq1dLC4mIrvr08ZPV379/vjEzMwOZnycmxMV04DMAIIAYQC4A4dXr1oU+fvLk/5/fv/9//fzl/9ev3/6vWLnqK0weFwYIIBZ0A79//crw5+9fhh+//jBYWlhz1dc3fgIqZeDh4WHk4uaqysnKmoysHiCAwAbceHRD6uLdQ0kGunoMv9hYGX79/sPw7cdvhn///jNYWJjzgtRw8/AwvHz5smzutlbN4yeP/k8Pqeo11bW5BxBAjCBnFPbHd7EIMJRoiZgx8nBwMvz+85fhJ9CQf3//Mzx9+pQBFM483FwMQG8xMDL/ZXj46cZ/9v/sk6ZWriwACCCwC25eviprEKbGeOP/AYavb34wsHCwMPz9AzTg9z+GP7x/Gf7++ws07B/Djz+/GZiYGBhYBdgYrx68JwXUyggQQGADePgFfjD+ZGHgF+Bl+P7yHZDPycDGws2gKW7GIMAhwnDs4XaGJ1/uMPz+8Z2BnYOZ4fOnzwwsrMxfgVr/AwQQ2ABpGYkv/GLcDELSfEDn/2HgFeZh8JdLYfjw6SODvqw5g4KiPMOsMw0MDEDbOYWABrz5zsAtI/wJpBcggJhABD+P8MefX38x/AU6k+EvIwPHHx4GNgYuhuuPLzCcuL2f4QswZozEHBjYGDmAdjIw/Pn+l0FCVOoNSC9AAIENEBEQe/Pjy0+GP8CA42LgZ/BXTWb48OUdw6m7+xmm7W5hePTqLoOLaigD+28+hnfv3jN8ePMJaIDMc5BegAACGyApLPX82+fvDB/ev2f4/eU/Ax+bEMOLd08ZpITkGbTl9IHp4jfDsev7GL59/8Lw+9dvhp/ffjPISio+BekFCCCwAQpiyrdfPn3F8OrVa4bHr+8zXHxwioGbjY+hwq+PwVkzmCHYMpFBS84A6Pp/DP/+/2P4+/Mvg5Ks+gOQXoAAggSimNqTb59+/v7x7SfL289vGRccmMDAxyrEsO3sKmCC+sKw9+xmhicf7gLxfQZ2QSaG/38YfkvyyoPCgBEggMAGfPnyhV2eV6vzxs7LWr9//Gf+yPKS6f/fl8zAhMgISkX//11h+M/I+A/ohL/f2P7/1VA2uvb161cOkAMAAogRmp1Znz17xsrCwsL07ds3lu/fvzOD2D9+/GCCpXk2Nra/XFxc/4Bif7i5uf9ISUn9Bgr/BggwAMhljD12v/akAAAAAElFTkSuQmCC)'; aNode.setAttribute('accesskey' , 't'); return aNode; } }); } catch (e) { Components.utils.reportError(e); }; /** Button Ende **/ })();Mfg.
Endor -
Der Autor empfielt als Ersatz für Chromium Browser das hier:
https://chrome.google.com/webstore/detai…apbdoflbiibnappDas sollte eine Webextension sein. Man könnte jetzt den Autor kontaktieren und fragen
ob er seine Version für Firefox 57 anpassen könnte. Müsste durchaus machbar sein.
Mfg.
Endor -
Bei Github hätten wir so ein Script:
https://github.com/ardiman/userCh…TabButton.uc.js
Leider funktioniert es ab Firefox 57 nicht mehr.
Müsste sich aber anpassen lassen.
Mfg.
Endor -
Denn CSS Code kannst Du ja ganz übernehmen.
Aber für diff siehe hier:
CSS Code
https://github.com/ardiman/userCh…99bd7cd2d31c2e3Script:
https://github.com/ardiman/userCh…65fa41a3c9e6844
Mfg.
Endor -
Hallo zusammen.
Es gibt wieder ein Update für den Wetterfuchs.
Im Script wurdeb die Adressen wo notwendig von http auf https umgestellt.
Dann hat uns aborix freundlicher Weise einige Anpassungen auf für Firefox 57
gemacht. :klasse: Dazu nochmals vielen Dank an dieser Stelle.Im CSS Code gab es auch einige Änderungen, es wird jetzt noch einiges mehr
an Werbung direkt ausgeblendet.
Neues gibt es auch etwas:
Jetzt kann man egal wo bei den Wetterkontor Seiten auch im Panel
auf Städtenamen klicken.DE Wetterdaten - Vorhersage
[Blockierte Grafik: https://i.imgur.com/cxraX2h.png]Klick in Karte auf Hamburg
[Blockierte Grafik: https://i.imgur.com/JfMTZlD.png]
[Blockierte Grafik: https://i.imgur.com/T2EPG0K.png]oder bei
EU Wetter - Aktuell und Vorhersage
Klick in Karte auf eine Stadtoder bei
Regionales Wetter - Aktuell und Vorhersage
Klick in Karte auf eine StadtMfg.
Endor -
Hallo zusammen.
Technisches Update für folgende Scripte:
- BuildIdToAboutDialogueBox.uc.js
- External-Aplication.uc.js
- ExternalApplications_Extended.uc.js
- middle-click-undo-close-tab.uc.js
- openbookModokiFor40.uc.js
- OpenDownloadFolderButtonM.uc.js
- RAMBack.uc.js
- RevertAddonBarStatusBar.uc.js
- TabNumber.uc.js
- UpdateBookmark2.uc.js
- ViewInOtherBrowser.uc.js
- Wetterfuchsbutton.uc.js
- Wetteffuchsbutton.css
Details für Wetterfuchs Aktualisierung siehe: https://www.camp-firefox.de/forum/viewtopi…061803#p1061803
Scripte und CSS Code sind wie immer bereits bei Github zu finden: https://github.com/ardiman/userChrome.js
[Blockierte Grafik: http://i.imgur.com/eMktuIs.png]
[Blockierte Grafik: http://www.sulden-ski.com/Test/warnung.png] Diskussionen, bzw. Änderungswünsche oder Hilfe bei Problemen ab jetzt bitte immer im
Diskussions-Thread schreiben: :arrow:https://www.camp-firefox.de/forum/viewtopic.php?f=16&t=112673
Danke!
Mfg.
Endor