- Firefox-Version
- 92
- Betriebssystem
- Windows 10 21H1
übersetzt aus dem Englischen, ursprünglich veröffentlicht unter https://www.reddit.com/r/firefox/comm…for_firefox_92/
Entschuldigung für etwaige Übersetzungsfehler
__________________________
Hallo,
Ich benutze seit langem eine Alternative zu einer Funktion, die TabMixPlus früher gemacht hat: Tabs mit einem mittleren Mausklick wieder öffnen.
Für mich eine sehr wichtige Funktion.
Ich werde erklären, wie ich es gemacht habe.
1. Im Firefox-Installationsordner habe ich eine Datei "config.js" mit folgendem Inhalt erstellt:
// skip 1st line
try {
let {
classes: Cc,
interfaces: Ci,
utils: Cu
} = Components;
Cu.import('resource://gre/modules/Services.jsm');
Cu.import('resource://gre/modules/osfile.jsm');
function UserChrome_js() {
Services.obs.addObserver(this, 'domwindowopened', false);
};
UserChrome_js.prototype = {
observe: function (aSubject, aTopic, aData) {
aSubject.addEventListener('load', this, true);
},
handleEvent: function (aEvent) {
let document = aEvent.originalTarget;
if (document.location && document.location.protocol == 'chrome:') {
// List your scripts here
let fileNames = ['undoCloseTab.uc.js' , 'customNewTab.uc.js'];
fileNames.forEach(function (fileName) {
let file = Services.dirsvc.get('UChrm', Ci.nsIFile);
file.append(fileName);
let fileURL = Services.io.getProtocolHandler('file')
.QueryInterface(Ci.nsIFileProtocolHandler)
.getURLSpecFromFile(file) + "?" + file.lastModifiedTime;
Services.scriptloader.loadSubScript(fileURL, document.defaultView, 'UTF-8');
});
}
},
};
if (!Cc['@mozilla.org/xre/app-info;1'].getService(Ci.nsIXULRuntime).inSafeMode)
new UserChrome_js();
} catch(ex) {};
try {
pref("toolkit.legacyUserProfileCustomizations.stylesheets", true);
} catch(e) {}
Alles anzeigen
2. Im selben Installationsordner habe ich den Unterordner "defaults" erstellt und darin einen weiteren Unterordner "pref" und darin die Datei "config-prefs.js" mit:
pref("general.config.obscure_value", 0);
pref("general.config.filename", "config.js");
pref("general.config.sandbox_enabled", false);
3. Im Ordner "profile" habe ich einen Unterordner "chrome" erstellt, der zwei Dateien enthält.
-undoCloseTab.uc.js , deren Inhalt ist:
// ==UserScript==
// @name middle-click "Undo Close Tab"
// @description Kürzlich geschlossenen Tab mit Mittelklick wieder öffnen
// @version 1.1
// @include main
// @compatibility Firefox ESR31.3, 34.0.5, 56.*
// @author oflow
// @namespace https://oflow.me/archives/265
// @note Firefox 31.3, 34.0.5 neuere nicht getestet
// @note remove arguments.callee
// @note mTabContainer -> tabContainer
// ==/UserScript==
(function() {
var ucjsUndoCloseTab = function(e) {
// Nur mit Mittelkick
if (e.button != 1) {
return;
}
// Klick auf Tab-Leiste und die Neuer Tab Schaltflächen
if (e.target.localName != 'tabs' && e.target.localName != 'toolbarbutton' && e.target.localName != 'arrowscrollbox') {
return;
}
undoCloseTab(0);
e.preventDefault();
e.stopPropagation();
}
// Schaltfläche Neuer Tab
document.getElementById('new-tab-button').onclick = ucjsUndoCloseTab;
// Tab-Leiste
gBrowser.tabContainer.addEventListener('click', ucjsUndoCloseTab, true);
window.addEventListener('unload', function uninit() {
gBrowser.tabContainer.removeEventListener('click', ucjsUndoCloseTab, true);
window.removeEventListener('unload', uninit, false);
}, false);
})();
Alles anzeigen
und userChrome.css , Hexeninhalt ist:
/* Hide 'Pre-Tabs' */
#TabsToolbar .titlebar-spacer[type="pre-tabs"] {
display: none !important;
}
/* Fx65+ Address bar - Reduce height */
toolbar { -moz-appearance: toolbar; min-width: 1px; max-height: 28px !important; }
/* Fx65+ Reduce tabs height */
#TabsToolbar, .tabbrowser-tab { max-height: 28px !important;}
/* Vertical space for min/max/close buttons above the main toolbar */
/* as Sized on Windows 7 (cf. Jscher) */
#main-window[tabsintitlebar="true"][sizemode="normal"]:not([inFullscreen="true"]) #nav-bar { margin-top: -3px !important; }
#main-window[tabsintitlebar="true"] [sizemode="maximized"]:not([inFullscreen="true"]) #nav-bar { margin-top: -3px !important; }
Alles anzeigen
Bis heute hat alles normal funktioniert, aber plötzlich funktioniert es nicht mehr. Ich vermute, dass es an der kürzlichen Namensänderung von "Undo Close Tab" zu "Reopen Closed Tab" liegt, aber ehrlich gesagt kann ich es nicht sagen, da ich kein Programmierer oder so bin. Ich habe hier nur Tutorials befolgt, um das Skript zu aktualisieren.
Könnte jemand bitte oben überprüfen, wo der Fehler liegt und warum er im aktuellen Firefox nicht mehr funktioniert?
Danke!
PS: Ich habe Firefox 91 von Grund auf auf einem anderen Computer installiert und das Skript funktioniert einwandfrei. Offensichtlich haben einige Änderungen zwischen Version 91 und 92 das Skript gebrochen.