На немецком сайте обновили - Показать количество закладок в папках.
Изменения- количество закладок переместили в крайний правый ряд. Теперь можно эти цифры выделять различным цветом
//------------- Показать количество закладок в папках .......................................................................................................... (function() { if (!window.gBrowser) return; setTimeout(function() { setFunction(); },50); function setFunction() { const css =` .countClass::after { content: attr(data-value); color: green; padding-right: 7px; } `; const sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService); const uri = Services.io.newURI('data:text/css,' + encodeURIComponent(css)); sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET); let bmbMenu = document.getElementById('bookmarks-menu-button'); let bookMenu = document.getElementById('bookmarksMenu'); let persToolBar = document.getElementById('PersonalToolbar'); if(bmbMenu) bmbMenu.addEventListener('popupshowing', onPopupShowing ); if(bookMenu) bookMenu.addEventListener('popupshowing', onPopupShowing ); if(persToolBar) persToolBar.addEventListener('popupshowing', onPopupShowing ); } function onPopupShowing(aEvent) { let popup = aEvent.originalTarget; for (let item of popup.children) { if (item.localName != 'menu' || item.id?.startsWith('history')) continue; setTimeout(() => { let itemPopup = item.menupopup; itemPopup.openPopup(); itemPopup.hidePopup(); let menuitemCount = 0; let menuCount = 0; for (let subitem of itemPopup.children) { if (subitem.classList.contains('bookmark-item') && !subitem.disabled && !subitem.hidden) { if (subitem.localName == 'menuitem') { menuitemCount++; } else if (subitem.localName == 'menu') { menuCount++; } } } let label = item.childNodes[3]; //[1]Anzeige links//label.menu-iconic-text label.classList.add('countClass'); // https://www.camp-firefox.de/forum/thema/136572-nur-die-anzeige-der-ordner-lesezeichenanzahl-in-einer-anderen-farbe-darstellen/?pageNo=7Die Funktion padStart füllt eine Zeichenkette zu Beginn auf. Der erste Parameter gibt die Anzahl der Stellen an, die du haben möchest, der zweite Parameter ist das, womit du auffüllen möchtest, bis diese Anzahl erreicht ist. let strCountOut = String(menuCount).padStart(2,'0') + "/" + String(menuitemCount).padStart(2,'0'); label.setAttribute('data-value', strCountOut); }, 100); } } })();
Отсутствует
Dummy,Антиподписячий код not works in FF 117 nightly
Not confirm.
Tested on Nightly 117 (appBuildID: 20230711213659).
I replace false with an empty string "", restart,
and Browser console show me AppConstants.MOZ_REQUIRE_SIGNING
as empty string, not as false.
log show that cannot import resource://gre/modules/WebRequestCommon.jsm
It's impossible.
WebRequestCommon.jsm imports only if "permitCPOWsInScope" in Cu is true.
But this property has been removed in Firefox 77.
Отсутствует
brake пишетDummy,Антиподписячий код not works in FF 117 nightly
Not confirm.
Tested on Nightly 117 (appBuildID: 20230711213659).I replace false with an empty string "", restart,
and Browser console show me AppConstants.MOZ_REQUIRE_SIGNING
as empty string, not as false.log show that cannot import resource://gre/modules/WebRequestCommon.jsm
It's impossible.
WebRequestCommon.jsm imports only if "permitCPOWsInScope" in Cu is true.
But this property has been removed in Firefox 77.
Sorry, it was my fault, TWP addon translate webpage broke the code.
Отсутствует
Где взять версию СВ 0.0.7.0.0.26 paxmode?
«The Truth Is Out There»
Отсутствует
Andrey_Krropotkin
Его можно приспособить к ucf? Он работает в боковой или в панели закладок? (Ох, как же долго добавляются комментарий, у меня одного так?)
Отредактировано b0ttle (15-07-2023 07:19:41)
Отсутствует
b0ttle обыкновенный скрипт вместо CSS, конечно можно, посмотрите в той ветке, там примеров много, а я не силен в этом
там еще один вариант сделали, добавили иконки перед счетчиками
(function() { if (!window.gBrowser) return; setTimeout(function() { setFunction(); },50); function setFunction() { const css =` .countClass1::before { content: ""; background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMjHxIGmVAAABoElEQVQ4T42SS0sCURTH77plyz5AX6WGHlhYBC5qHbQIgiCIICJaRLQJgiINpJDCcjLMCHtJ2SY3UmQPoyISc0bzMZMGt3vO3HmZgQf+3DvD+f3u3MMQqNSl6zh14aINhfUiZK3k2QD9UU7tKUcw1WLYFujlmFm6oFoKaSkGMZVCgFbyfvqd26aq7MO1riBx1G8K/oHVrJeq0iaFXo6ZFT/o0wT1YAYBrGQ8uEIvx8y6DjlRgCCH8VQLXE6v4gq9J1vdzRzVKib2GgLjkzkMYPF9CZO9HUVBTOyRGTPEcUKifgdOHGELVHidp/nnWZpPTeM+HR9EgSKL9NzvUDhOSMTXxe4e1qC3RWz+epkzYPlhEve6oPSxTIHhuCZQpV0GL9jA3OMUle8nqJQcx2ddAD02QdjbgXeuPVWHpbsxlFkFwHCckP11ASdsnMpgHYTBfd6MoMwqAIbjmgAGZ/1kK5xJDOM7XZB9mqFBj1DgOCE7K204QNvda64A0QWBNUE+3Oh0cpwQ0S1EQdJI9tztV39+JFbworXBtLBAfxMhhPwCpRF9VGzn5xwAAAAASUVORK5CYII="); background-repeat: no-repeat; background-size: 16px; /* icon size */ background-position: center; margin-left: 16px !important; /* Abstand links minimum für schmale Popus CHANGE */ margin-right: 4px !important; /* Abstand bis zum "Wert" der Ordner CHANGE */ height: 16px; width: 16px; /*fill: #c0c0c0;*/ fill-opacity: 1; } /* Default FX left margin ist 16px !! --> CHANGE */ .countClass1 label { margin-inline: 0px !important; } /* Ordner container Inhalt zentriert --> CHANGE */ hbox.menu-accel-container.countClass1 { align-items: center !important; } .countClass1::after { content: attr(data-value1) !important; font-family: Consolas, "Lucida Console", "Courier New", monospace !important; font-size: 12px !important; font-weight: 900 !important; color: green !important; /* TEST */ /* background-color: lightblue; TEST */ height: 12px; /* height = font size Text zentriert CHANGE */ } .countClass2::before { content: ""; background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMjHxIGmVAAAChElEQVQ4T5WSa0jTYRjF3w2FLuLUjCnMy5bWzKKgPiTUpyi/BUFhBFF20bnNEvvg0iya3QT/Ni/zMm0lZmpNTbc0dF4JSZ12IQQ1AjNKM01ScpF6etQXYkhhPzg8z3vec174w5/9i6bCrXqrQXGeH/+PvAtixexomfPrgGE8O45JuL16Ws0RJszWAtNPYDOEpXJ7dRjjxbJv/alTmDABk6X41HVxxBDL1vPrv5OjYe7GeDfZc/PuBxhNB4bTSDQ/ZqMxSykYtSJptpqJeXwZ2y3/hL6yiJp3dZG9Yx1RIzMvz81gMAEY0JISSTpg8CoWBm5gukf3/XNzzPCg5XC34+5eS/WVDdGs3SC34lU00H8KeHMMeB0F9B0Beo+SaHccB3pOkE7THgt0q2iPB1rOoEEvNbPMWBZkvym1z7UdAjoPAm17gNZdQPMOoGkb8CwcqCdZtwN1O4Gn++CsioQ1RWLhH8GYoGJBjWnejXM2KtaHUWgLYFNSiWYtqToUeLwJqFDgZ4lyoe6SR7kQx3x5fZkMFZO1pEnsqKFi9WagimSh4iNSBZUfKjBfIl+wJa+rzIhjPrzmSpVujR4VIUA5FRZVpgBKSSVy4F4w5k2BKE10O8vjK+m45lm5VLgfzEVFM82iAKCAlBeABt1agcdX8va6twPFgUAxFQvlGBf8fkwKfk4Y6ZxLvsEfL5I9GnjclSwN8x27vfELTGGYEEKc9iTPtlwNO5mvFanak7y6ptJDfsEQiveXJUOZaubOa3/I17LwD3rpeGeKr6NAI4oR1Ey66GdpmZh2WZFGlNir8+kfSvIapj926c6FHC3zMWrYAXo9mFsuLD50R82UlNlPWY9ll7HfciF/3F34yfwAAAAASUVORK5CYII="); /* TEST */ /*background-image: url("chrome://browser/skin/bookmark-hollow.svg");*/ background-repeat: no-repeat; background-size: 16px; /* icon size */ background-position: center; margin-right: 4px !important; /* Abstand bis zum "Wert" der Links */ margin-left: 4px !important; /* Abstand bis zum Icon der (Links) ORDNER CHANGE */ height: 16px; width: 16px; /*fill: #c0c0c0;*/ /* TEST */ fill-opacity: 1; } .countClass2::after { content: attr(data-value2); font-family: Consolas, "Lucida Console", "Courier New", monospace !important; font-size: 12px !important; font-weight: 900 !important; color: red !important; /* TEST */ /*margin-right: -6px !important;*/ /* Abstand zum Pfeil rechts CHANGE */ /* background-color: lightblue; TEST */ height: 12px; /* height = font size Text zentriert CHANGE */ } .countClass2 image { order: 1; /* Pfeil hinter dem "Wert" der Links */ } `; const sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService); const uri = Services.io.newURI('data:text/css,' + encodeURIComponent(css)); sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET); let bmbMenu = document.getElementById('bookmarks-menu-button'); let bookMenu = document.getElementById('bookmarksMenu'); let persToolBar = document.getElementById('PersonalToolbar'); if(bmbMenu) bmbMenu.addEventListener('popupshowing', onPopupShowing ); if(bookMenu) bookMenu.addEventListener('popupshowing', onPopupShowing ); if(persToolBar) persToolBar.addEventListener('popupshowing', onPopupShowing ); } function onPopupShowing(aEvent) { let popup = aEvent.originalTarget; for (let item of popup.children) { if (item.localName != 'menu' || item.id?.startsWith('history')) { continue; } setTimeout(() => { let itemPopup = item.menupopup; itemPopup.hidden = true; itemPopup.collapsed = true; itemPopup.openPopup(); itemPopup.hidePopup(); let menuitemCount = 0; let menuCount = 0; for (let subitem of itemPopup.children) { if (subitem.classList.contains('bookmark-item') && !subitem.disabled && !subitem.hidden) { if (subitem.localName == 'menuitem') { menuitemCount++; } else if (subitem.localName == 'menu') { menuCount++; } } } itemPopup.hidden = false; itemPopup.collapsed = false; //item.style.color = '#c0c0c0'; let label1 = item.childNodes[3]; label1.classList.add('countClass1'); let strCountOut1 = String(menuCount).padEnd(2, '\xa0'); // TEST CHANGE? //let strCountOut1 = String(menuCount).padEnd(2) + '\xa0'; // padEnd2 => zwei Stellen, plus Abstand label1.setAttribute('data-value1', strCountOut1); let label2 = item.childNodes[4]; label2.classList.add('countClass2'); let strCountOut2 = String(menuitemCount).padEnd(3, '\xa0'); // padEnd3 => drei Stellen, Abstand bei nur einer Ziffer label2.setAttribute('data-value2', strCountOut2); }, 100); } } })();
Отредактировано Andrey_Krropotkin (15-07-2023 08:43:34)
Отсутствует
Andrey_Krropotkin, а в какую секцию добавляли в файле CustomStylesScripts.jsm? Просто, пару раз пробовал, что-то никак. Ничего не происходит. Был на их сайте, пробовал оттуда два скрипта, никакой реакций.
Добавлено 15-07-2023 21:30:49
Заработал, работает только в одном меню, и с первого раза как-то непривычно. Наверно из-за темной темы, можно и под себя настроить, но все же, посмотрел, как-то не особо нужная вещь в моем случае. Все равно, спасибо.
Отредактировано b0ttle (15-07-2023 21:35:27)
Отсутствует
Dumby
Посмотрите , что тут нагородил, проще можно ? Ссылку открыть и т.д
/*Initialization Code*/ var sysPlayerName = "CentBrowser "; var path = "D:\\CentBrowser 5.0\\X-Cent.exe"; self.image = "moz-icon://file://" + path; var popup = document.getElementById("contentAreaContextMenu"); addEventListener("popupshowing", { handleEvent() { if (this.hidden) return; var menuitem = document.createXULElement("menuitem"); for(var args of Object.entries({ image: self.image, oncommand: "play()", class: "menuitem-iconic", label: "Открыть в " + sysPlayerName })) menuitem.setAttribute(...args); menuitem.play = () => play(gContextMenu.linkURL || gContextMenu.mediaURL); document.getElementById("context-savelink").before(menuitem); addDestructor(() => menuitem.remove()); this.handleEvent = e => { if (e.target == popup) menuitem.hidden = this.hidden; } } }, false, popup || 1); this._handleClick = () => { play(gBrowser.currentURI.spec, ""); }; function play(link, param) { var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); file.initWithPath(path); process.init(file); CustomizableUI.setToolbarVisibility("PersonalToolbar", document.querySelector("#PersonalToolbar").closed); gBrowser.selectedBrowser.browsingContext.mediaController.stop(); process.run(false, [link], 1); }; this.oncontextmenu =e=> { e.button && !e.ctrlKey && e.preventDefault() };
Отредактировано ВВП (17-07-2023 14:46:59)
Отсутствует
Приветствую. Может есть готовая кнопка поиска для FF 100? Нужно искать по клику на неё текст из буфера без появления панели поиска.
И ещё нужна кнопка "Открыть URL" для FF 100.
Отредактировано manuk (19-07-2023 17:41:23)
Отсутствует
Приветствую.
Мои: FF52 ESR x64/Win10
Имеется функция
function getXYP() { var url=gContextMenu.linkURL; var url=decodeURIComponent(url); var url=url.substring(8).replace(new RegExp("/",'g'),"\\"); var pathway="C:\\Program Files (x86)\\XYplorer\\XYplorer.exe"; startProcess(pathway,[url]); gClipboard.write(url); function startProcess(path, args) { var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath(path); var process = Components.classes["@mozilla.org/process/util;1"] .createInstance(Components.interfaces.nsIProcess); process.init(file); process.runw(false, args, args.length); }; }
Подобную вещь можно проделать в Javascripte с Проводником, используя аргумент /select приданный Explorer как одна из опций при его открытии:
var WshShell = WScript.CreateObject('WScript.Shell');
WshShell.Run('explorer /select, D:\\tmp\\test\\myFile.rar');
В этом коде путь не заменяется переменными!
Моя просьба, если возможно помочь скрестить эти коды.
Мне хотелось бы преобразовать getXYP() в getWE(), напр., так чтобы она проделывала то же самое в Проводнике (открывала папку с файлом по его url, а его самого выделяла).
Отсутствует
Посмотрите , что тут нагородил, проще можно ?
Проще? Как по мне, так там наоборот, недостаточно.
Часть кода скрытия пункта потерялась.
И таблетка от двоящихся сепараторов отсутствует.
var appName = "CentBrowser"; var appPath = "D:\\CentBrowser 5.0\\X-Cent.exe"; self.image = "moz-icon://file://" + appPath; var popup = document.getElementById("contentAreaContextMenu"); addEventListener("popupshowing", { get url() { return gContextMenu.linkURL || gContextMenu.mediaURL; }, handleEvent() { var {url} = this; if (!url) return; var menuitem = document.createXULElement("menuitem"); menuitem.url = url; for(var args of Object.entries({ image: self.image, class: "menuitem-iconic", oncommand: "run(this.url)", label: "Открыть в " + appName })) menuitem.setAttribute(...args); menuitem.run = self._handleClick; document.getElementById("context-savelink").before(menuitem); addDestructor(() => menuitem.remove()); menuitem.render = () => menuitem.hidden = true; this.handleEvent = e => { if (e.target == popup) menuitem.hidden = !(menuitem.url = this.url); } } }, false, popup || 1); this._handleClick = (link = gBrowser.currentURI.spec) => { var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); file.initWithPath(appPath); (run = link => { CustomizableUI.setToolbarVisibility("PersonalToolbar", false); gBrowser.selectedBrowser.browsingContext.mediaController.stop(); var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); process.init(file); process.runw(false, [link], 1); })(link); }
Нужно искать по клику на неё текст из буфера без появления панели поиска.
Может так сойдёт
(ts => { var find = async e => { var searchString = (await navigator.clipboard.readText())?.slice(0, 150); if (!searchString) return; var findPrevious = e.button > 0 || e.ctrlKey || e.shiftKey; var {finder} = gBrowser.selectedBrowser; var next = finder.searchString == searchString; var bar = gBrowser.selectedTab._findBar; if (bar) { ts = Cu.now(); if (!bar.hasOwnProperty("open")) bar.open = mode => Cu.now() - ts > 500 && delete bar.open && bar.open(mode); if (!next) return bar._findField.setUserInput(searchString); } next ? finder.findAgain(searchString, findPrevious) : finder.fastFind(searchString); } this.onclick = e => e.button > 1 || find(e); })();
И ещё нужна кнопка "Открыть URL"
Создаёшь новую кнопку, открываешь на редактирование,
в поле «Имя» вводишь «Открыть URL», жмёшь «OK».
Всё, готово. Нужна была «кнопка "Открыть URL"» — теперь она есть.
var WshShell = WScript.CreateObject('WScript.Shell');
WshShell.Run('explorer /select, D:\\tmp\\test\\myFile.rar');
В этом коде путь не заменяется переменными!
Интересно, что бы это значило, «путь не заменяется переменными» .
/select,
О, полезный ключ и пример синтаксиса.
В том смысле, что это работает с папками,
чего, вроде, нельзя сделать из лисьего кода напрямую.
А вот с файлами, как раз, никогда проблем не было,
именно так и работает nsIFile.reveal()
function getWE() { gContextMenu.linkURI.QueryInterface(Ci.nsIFileURL).file.reveal(); }
Отсутствует
Может так сойдёт
скрытый текстВыделить кодКод:
(ts => { var find = async e => { var searchString = (await navigator.clipboard.readText())?.slice(0, 150); if (!searchString) return; var findPrevious = e.button > 0 || e.ctrlKey || e.shiftKey; var {finder} = gBrowser.selectedBrowser; var next = finder.searchString == searchString; var bar = gBrowser.selectedTab._findBar; if (bar) { ts = Cu.now(); if (!bar.hasOwnProperty("open")) bar.open = mode => Cu.now() - ts > 500 && delete bar.open && bar.open(mode); if (!next) return bar._findField.setUserInput(searchString); } next ? finder.findAgain(searchString, findPrevious) : finder.fastFind(searchString); } this.onclick = e => e.button > 1 || find(e); })();
Dumby, а можно тоже самое, только для UCF?
И с добавлением хоткея, например Ctrl + F3.
Отредактировано unter_officer (21-07-2023 12:57:35)
«The Truth Is Out There»
Отсутствует
А что в неё добавить, для перехода по указанному в ней URL?
ЛКМ - открыть в новой активной вкладке, колёсико - в фоновой.
/*Initialization Code*/ // Настройка функций кликов мыши для кнопки this.onclick =e=> { // действие при клике ЛКМ .... if ( e.button == 0 ) gBrowser.selectedTab = gBrowser.addTrustedTab("https://yandex.ru/images/search?text=Firefox"); // действие при клике Колёсиком .... if ( e.button == 1 ) gBrowser.Tab = gBrowser.addTrustedTab("https://yandex.ru/images/search?text=Firefox"); }; // Подсказка для кнопки .............. this.onmouseover =()=> { this.tooltipText = "Яндекс Картинки"; };
Отсутствует
Интересно, что бы это значило, «путь не заменяется переменными»
Я имел в виду, что невозможно использовать такую запись:
path = "D:\\tmp\\test\\myFile.rar";
WshShell.Run('explorer /select, path');
Синтаксис действительно интересный, там еще есть ключи:
напр.: http://smallvoid.com/article/windows-explorer.html
Большое спасибо за код, отлично пошел.
Отсутствует
Dumby, а можно тоже самое, только для UCF?
И с добавлением хоткея, например Ctrl + F3.
(async (topic, self) => ({ id: "806127", label: "■■■■■■■■■", tooltiptext: "tooltiptext", localized: false, onCreated(btn) { btn.onclick = this.click; btn.image = "chrome://devtools/skin/images/tool-application.svg"; }, click(e) { e.button > 1 || self.find(e, e.button > 0 || e.ctrlKey || e.shiftKey); }, handleEvent(e) { e.ctrlKey && e.code == "F3" && !e.altKey && !e.repeat && this.find(e, e.shiftKey); }, init() { this.sym = Symbol(); this.args = ["keydown", this, true]; Services.obs.addObserver(self = this, topic); Services.obs.addObserver(function quit(s, t) { Services.obs.removeObserver(quit, t); Services.obs.removeObserver(self, topic); }, "quit-application-granted"); CustomizableUI.createWidget(this); }, observe(win) { win.addEventListener(...this.args); var ucf = win.ucf_custom_script_win; ucf.unloadlisteners.push(this.sym); ucf[this.sym] = {destructor: () => win.removeEventListener(...this.args)}; }, maybeOpen(mode) { Cu.now() - self.ts > 500 && delete this.open && this.open(mode); }, async find(e, findPrevious) { var win = e.view.windowRoot.ownerGlobal; var searchString = (await win.navigator.clipboard.readText())?.slice(0, 150); if (!searchString) return; var gb = win.gBrowser, {finder} = gb.selectedBrowser; var next = finder.searchString == searchString; var bar = gb.selectedTab._findBar; if (bar) { this.ts = Cu.now(); if (!bar.hasOwnProperty("open")) bar.open = this.maybeOpen; if (!next) return bar._findField.setUserInput(searchString); } next ? finder.findAgain(searchString, findPrevious) : finder.fastFind(searchString); } }).init())("browser-delayed-startup-finished");
Я имел в виду, что невозможно использовать такую запись:
path = "D:\\tmp\\test\\myFile.rar";
WshShell.Run('explorer /select, path');
Мне кажется, что использовать такую запись невозможно
не только в JavaScript, а вообще ни в каком языке.
Вот так работает, проверил.
var path = "C:\\Windows\\notepad.exe"; var WshShell = WScript.CreateObject('WScript.Shell'); WshShell.Run('explorer /select, ' + path);
Отсутствует
скрытый текстВыделить кодКод:
(async (topic, self) => ({ id: "806127", label: "■■■■■■■■■", tooltiptext: "tooltiptext", localized: false, onCreated(btn) { btn.onclick = this.click; btn.image = "chrome://devtools/skin/images/tool-application.svg"; }, click(e) { e.button > 1 || self.find(e, e.button > 0 || e.ctrlKey || e.shiftKey); }, handleEvent(e) { e.ctrlKey && e.code == "F3" && !e.altKey && !e.repeat && this.find(e, e.shiftKey); }, init() { this.sym = Symbol(); this.args = ["keydown", this, true]; Services.obs.addObserver(self = this, topic); Services.obs.addObserver(function quit(s, t) { Services.obs.removeObserver(quit, t); Services.obs.removeObserver(self, topic); }, "quit-application-granted"); CustomizableUI.createWidget(this); }, observe(win) { win.addEventListener(...this.args); var ucf = win.ucf_custom_script_win; ucf.unloadlisteners.push(this.sym); ucf[this.sym] = {destructor: () => win.removeEventListener(...this.args)}; }, maybeOpen(mode) { Cu.now() - self.ts > 500 && delete this.open && this.open(mode); }, async find(e, findPrevious) { var win = e.view.windowRoot.ownerGlobal; var searchString = (await win.navigator.clipboard.readText())?.slice(0, 150); if (!searchString) return; var gb = win.gBrowser, {finder} = gb.selectedBrowser; var next = finder.searchString == searchString; var bar = gb.selectedTab._findBar; if (bar) { this.ts = Cu.now(); if (!bar.hasOwnProperty("open")) bar.open = this.maybeOpen; if (!next) return bar._findField.setUserInput(searchString); } next ? finder.findAgain(searchString, findPrevious) : finder.fastFind(searchString); } }).init())("browser-delayed-startup-finished");
Dumby, большое спасибо.
«The Truth Is Out There»
Отсутствует
Dumby
Это окно виндовское никак не раскрасить ?(w10)
data:image/png;charset=utf-8;base64,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
Отсутствует