Beiträge von aborix
-
-
-
-
Bitte schön:
JavaScript
Alles anzeigen(function() { if (!window.gBrowser) return; async function doFindbar() { await gFindBarPromise; eval('gFindBar.open = ' + gFindBar.open.toString() .replace('open(mode) {', 'function $& mode = this.FIND_NORMAL;')); }; doFindbar(); gBrowser.tabContainer.addEventListener('TabSelect', function() { if (!gFindBarInitialized) doFindbar(); }); })();
-
Nein, auch AppConstants ist für Webseiten nicht verfügbar.
-
Das Uhr-Skript liest die Version aus gAppInfo aus, das das Objekt Components benutzt (Zeilen 50 und 51, Cc ist eine Abkürzung von Components.classes). Components ist nur auf Browserebene verfügbar und nicht für Webseiten und daher lässt sich das auf diese Weise nicht machen.
-
-
Ein Skript kann so aussehen:
JavaScript
Alles anzeigen(function() { if (!window.gBrowser) return; let frameScript = function() { addEventListener('pageshow', function(event) { let document = event.target; /* - überprüfen der URL, z.B. if (!document.URL.startsWith('http://example.com/aaa/bbb')) return; - oder if (document.domain != 'example.com') return; - Aktionen auf der Seite: document.querySelector('body').classList.remove('nojs'); */ }); }; let frameScriptURI = 'data:, (' + frameScript.toString() + ')()'; window.messageManager.loadFrameScript(frameScriptURI, true); })();
Kommentare innerhalb der Funktion frameScript (Zeilen 6 - 29) müssen mit /* und */ begrenzt sein; // funktioniert hier nicht.
-
Ja, das kann man. Allerdings ist das ein typischer Anwendungsfall für Grease-, Violent- oder Tampermonkey und geht damit wesentlich einfacher.
-
Frohe Weihnachten und Alles Gute für das neue Jahr!
-
Hier steht etwas dazu:
Mit der Erweiterung Expire history by days kann man die Dauer selbst festlegen.
-
Testet bitte:
JavaScript
Alles anzeigen// ==UserScript== // @name middle-click "Undo Close Tab" // @description Kürzlich geschlossenen Tab mit Mittelklick wieder öffnen // @version 1.1 // @include main // @compatibility Firefox 71 // @author oflow // @mod aborix // @namespace https://oflow.me/archives/265 // ==/UserScript== (function() { if (!window.gBrowser) return; var ucjsUndoCloseTab = function(e) { // Nur mit Mittelkick if (e.button != 1) return; // Klick auf Tab-Leiste und die Neuer-Tab-Schaltflächen if (e.originalTarget.className.startsWith('scrollbutton-')) return; let node = e.target; while (node.localName != 'tab' && node.localName != 'toolbarbutton' && node != gBrowser.tabContainer) { node = node.parentNode; } if (node == gBrowser.tabContainer || node.id == 'new-tab-button' || node.id == 'tabs-newtab-button') { 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); })();
-
Danke für den Hinweis.
-
-
Hallo,
teste dieses Skript:
JavaScript
Alles anzeigen(function() { if (!window.gBrowser) return; let frameScript = function() { addEventListener('pageshow', function(event) { let url = event.target.URL; if (url == 'about:newtab' || url == 'about:home') { content.setTimeout(function() { content.focus(); content.document.getElementById('newtab-search-text').focus(); }, 200); }; }); }; let frameScriptURI = 'data:,(' + frameScript.toString() + ')()'; window.messageManager.loadFrameScript(frameScriptURI, true); gBrowser.tabContainer.addEventListener('TabOpen', function(event) { setTimeout(function() { let browser = event.target.linkedBrowser; if (browser.currentURI.spec == 'about:newtab') { browser.messageManager.loadFrameScript( 'data:, content.focus(); content.document.getElementById("newtab-search-text").focus();', true); }; }, 200); }); })();
-
-
Bitte testen:
JavaScript
Alles anzeigen(function() { if (window.__SSi != 'window0') return; CustomizableUI.createWidget({ id: 'addons-update-button', defaultArea: CustomizableUI.AREA_NAVBAR, label: 'Add-ons Update', tooltiptext: '', onCommand: onCommand, onCreated: function(button) { button.style.listStyleImage = 'url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAdUlEQVQokZVSwRHAIAgLPYfoXs7RCTpG53Avt7APrhaFU8gLMEEJAkEQgFbc7IxkVjt0r6Sp7VIVITumBpKt00FA2ThmjXzkfMMWO8EZFSj8LrUyjsG9b9DaJXq+qAIVxEUxtLHpaXE95dj1NcK2rmbwaGJ4Af0tIg00j/6iAAAAAElFTkSuQmCC)';} }); function onCommand(event) { let frameScript = function() { addEventListener('pageshow', function onPageshow(event) { let document = event.target; if (document.URL != 'about:addons') return; removeEventListener('pageshow', onPageshow); content.setTimeout(function() { content.getHtmlBrowser().contentDocument.querySelector('[action="check-for-updates"]').click(); let item = document.getElementById('category-availableUpdates'); item.click(); let categories = item.parentNode; categories.addEventListener('mousedown', function onMousedown(event) { if (event.target != item && event.target.parentNode != item) { item.hidden = true; categories.removeEventListener('mousedown', onMousedown); }; }); }, 0); }); }; let frameScriptURI = 'data:,(' + frameScript.toString() + ')()'; let window = event.target.ownerGlobal; window.openTrustedLinkIn('about:addons', 'tab'); window.gBrowser.selectedBrowser.messageManager.loadFrameScript(frameScriptURI, true); }; })();
-
Die Erweiterung SingleFile bietet laut Beschreibung diese Möglichkeit.
Vielleicht auch eine andere Erweiterung zum Speichern von Webseiten:
-
-
Bei mir funktioniert das letzte Skript in Fx 71, in Fx 72 hingegen nicht.
Teste folgendes Skript. Es funktioniert bei mir in Fx 71 und 72.
JavaScript
Alles anzeigen(function() { if (!window.gBrowser) return; async function doFindbar() { await gFindBarPromise; gFindBar.open = function open() { this.findMode = this.FIND_NORMAL; if (!this._notFoundStr) { var bundle = this.strBundle; this._notFoundStr = bundle.GetStringFromName("NotFound"); this._wrappedToTopStr = bundle.GetStringFromName("WrappedToTop"); this._wrappedToBottomStr = bundle.GetStringFromName("WrappedToBottom"); this._normalFindStr = bundle.GetStringFromName("NormalFind"); this._fastFindStr = bundle.GetStringFromName("FastFind"); this._fastFindLinksStr = bundle.GetStringFromName("FastFindLinks"); this._caseSensitiveStr = bundle.GetStringFromName("CaseSensitive"); this._entireWordStr = bundle.GetStringFromName("EntireWord"); } this._findFailedString = null; this._updateFindUI(); if (this.hidden) { this.removeAttribute("noanim"); this.hidden = false; this._updateStatusUI(Ci.nsITypeAheadFind.FIND_FOUND); let event = document.createEvent("Events"); event.initEvent("findbaropen", true, false); this.dispatchEvent(event); this.browser.finder.onFindbarOpen(); return true; } return false; }; }; doFindbar(); gBrowser.tabContainer.addEventListener('TabSelect', function() { if (!gFindBarInitialized) doFindbar(); }); })();