Все это хорошо.Но нет шаблона. Есть пара кнопок без управления , но как их в скрипт перевести...Например - поисковик
Services.search.addEngine("data:text/xml," + encodeURIComponent(` <SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/"> <ShortName>Seasonvar.ru</ShortName> <Description>Сериалы ТУТ! Сериалы онлайн смотреть бесплатно. Смотреть онлайн.</Description> <InputEncoding>UTF-8</InputEncoding> <Image width="16" height="16">data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAADvklEQVRYhb1XTYgcRRR+JtNVr0ail0gUPLkehBwEVwgakMHNdr1XKwQ8RFQwF39uOXnxtkIwieAhetWLeoh7VVBE3IPgYY1gCIFA0OzOdL0aMYoH4y5xZsrDdjUzk91sz8BsQTFU09Pfz3uvXhXAjEax2FjoWP34MsCBWWHsDm7VKWGMwrh+7SiofScQnAlC+j9xeHvfwQvSbwnpO4FxIKTveKs+2TcXCsKF4EwMjINqOhODM1Fs9tRMwX9fgCPCGIX0oLvUjNV0ZhCciZ7wh5stwJkR6OTq1aR+hMBSs3LEW/3tzAh4q04OExj+DYwDYYxi8fWZgLcXG7kwbg6rT2S2y1H3hPRXMwEHABBnLgeH/cA46DozSLEvc+LrmQGn4UlfGY99cuD6cTg0U/B23nhOGO9OvtKB4PD7iT/qc/PsXu8I45vC2E3gaQ470HVmIKT/XgE4WAt4I89OF6S2PKnPA+ON3xbgyPg7geGhwPidMMauM4NU5+Oll1zwpLc6z4Cpp5zwlif9MwDAagsaweEXI6pz9YQn1R9Rm5Juh7ldBbp3JYf7axEorLoa2HwEALACcLCwahMA7gMA2DiBjw3bvRvoeAg84a3aIbg8D9ly2b9XW9DwrP8FAFi38Ig47EsqtaGNZjflVRISnq4FPj6uH4dDnvESAIA4c7FUFMO9Yj629QpjmAocAKCTq/eFtF0GODCJ9SkptxuQvjg1AWGMNxgeEMazeyneKfbBmbg+bQsubPakt7oLACCEa7XVjzlwswUPT6ee8LOCcAEAILCRWolXKq+2YWeitODw5ODz0PSkN9M6LDX/qhuC6gRUdsGC4dEp1OszwmatWrP5sxaBdPKx+K6w7gVnYnsxe3oKAihC+oO09ozFXvYPh6G92MiFUIQxetZvTwTeZj3nScci1y8MEVqrcuAeTlSll6uXOqReFMZYkFqZiMC2fRglz+bTs8KqT9PH99r3gzOxsOoUAIA4vO1J/zIZAdIfCmP0uV5Mzzp5dqzqfLspT1sv6UEnz44BAHjGS5701kQEpLTO8+jptTxY9HcsvSo/TN9b9U/6T5vUy9v3AfXKZC6w/rK81/306wl4sHTm4+FsHwF3JnaXTF8YY/t5mFttQWO5bGjCGAurrso8NKHsqjWd0Gc84x/pRBsc9kZuPCknqqOX7gVnup5xQxi3POGPJfFvSjEjeVVrXDsKqs16zlt1smOzN4TUO8J41hOe86wveNYXvFXnPalzBeF7aXqL54s8q1qwkLaFzV5Lbo6P/wEF7JeDr5SEggAAAABJRU5ErkJggg==</Image> <Url type="text/html" method="GET" template="http://seasonvar.ru/search"> <Param name="q" value="{searchTerms}"/> </Url> <SearchForm>http://seasonvar.ru/</SearchForm> </SearchPlugin> `), null, null);
Отредактировано solombala (12-05-2020 07:02:53)
Отсутствует
Например - поисковик
а где ты его держишь в кнопке "код"?
так то тут и кнопка не нужна достаточно один раз выполнить этот код и всё
пока search.json.mozlz4 не удалишь
Добавлено 12-05-2020 13:24:34
Но нет шаблона
создать кнопку шаблоны есть ищи на этом форуме по CustomizableUI.createWidget
Отредактировано Vitaliy V. (12-05-2020 13:24:34)
Отсутствует
Vitaliy V.
ищи на этом форуме по CustomizableUI.createWidget
Черт не разберет там, и с чем едят это...К примеру:
try {CustomizableUI.createWidget({ label: "Дополнения", id: "ucf-cbbtn-ToggleRestartlessAddons", localized: false, get initCode() { this.event = Object.create(null); delete this.initCode; return this.initCode = Cu.readUTF8URI(Services.io.newURI( "chrome://user_chrome_files/content/custom_scripts/toggleRestartlessAddons.js" )); }, onCreated(btn) { btn.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAt0lEQVR42mP4//8/AzK269D+zxDPAMYgNro8OsYUsGf4L5IrAMYgNskGPHrzkAHmAhCbZAPAglFAA6II2w5WC/ZzGEQDDMO9gCQGUmNYr4dhKANPBgdcAyEMMgSrAWA/R0H8jdcALN5iQHYWLABJMgBbABJjACiKweFHigHwgIW6Eux1UryA1QD0QISzsQQqVi+gKEBLfeguwhqIBEM5ihQD4rEoQHaBLwEDQOGBHKggNiyl4sreAEpLK4gRQN5TAAAAAElFTkSuQmCC"); new btn.ownerGlobal.Function("self,event,_phase", this.initCode) .call(btn, btn, this.event, "init"); } });} catch(ex) {Cu.reportError(ex);}
Отсутствует
и с чем едят это...К примеру:
это едят с toggleRestartlessAddons.js https://github.com/Infocatcher/Custom_B … sAddons.js
а для поиковика тебе и кнопка не нужна
можно сделать проверку например если нет поисковика с названием Seasonvar.ru то код сработает
try { Services.search.init().then(() => { if (!Services.search.getEngineByName("Seasonvar.ru")) { Services.search.addEngine("data:text/xml," + encodeURIComponent(` <SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/"> <ShortName>Seasonvar.ru</ShortName> <Description>Сериалы ТУТ! Сериалы онлайн смотреть бесплатно. Смотреть онлайн.</Description> <InputEncoding>UTF-8</InputEncoding> <Image width="16" height="16">data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAADvklEQVRYhb1XTYgcRRR+JtNVr0ail0gUPLkehBwEVwgakMHNdr1XKwQ8RFQwF39uOXnxtkIwieAhetWLeoh7VVBE3IPgYY1gCIFA0OzOdL0aMYoH4y5xZsrDdjUzk91sz8BsQTFU09Pfz3uvXhXAjEax2FjoWP34MsCBWWHsDm7VKWGMwrh+7SiofScQnAlC+j9xeHvfwQvSbwnpO4FxIKTveKs+2TcXCsKF4EwMjINqOhODM1Fs9tRMwX9fgCPCGIX0oLvUjNV0ZhCciZ7wh5stwJkR6OTq1aR+hMBSs3LEW/3tzAh4q04OExj+DYwDYYxi8fWZgLcXG7kwbg6rT2S2y1H3hPRXMwEHABBnLgeH/cA46DozSLEvc+LrmQGn4UlfGY99cuD6cTg0U/B23nhOGO9OvtKB4PD7iT/qc/PsXu8I45vC2E3gaQ470HVmIKT/XgE4WAt4I89OF6S2PKnPA+ON3xbgyPg7geGhwPidMMauM4NU5+Oll1zwpLc6z4Cpp5zwlif9MwDAagsaweEXI6pz9YQn1R9Rm5Juh7ldBbp3JYf7axEorLoa2HwEALACcLCwahMA7gMA2DiBjw3bvRvoeAg84a3aIbg8D9ly2b9XW9DwrP8FAFi38Ig47EsqtaGNZjflVRISnq4FPj6uH4dDnvESAIA4c7FUFMO9Yj629QpjmAocAKCTq/eFtF0GODCJ9SkptxuQvjg1AWGMNxgeEMazeyneKfbBmbg+bQsubPakt7oLACCEa7XVjzlwswUPT6ee8LOCcAEAILCRWolXKq+2YWeitODw5ODz0PSkN9M6LDX/qhuC6gRUdsGC4dEp1OszwmatWrP5sxaBdPKx+K6w7gVnYnsxe3oKAihC+oO09ozFXvYPh6G92MiFUIQxetZvTwTeZj3nScci1y8MEVqrcuAeTlSll6uXOqReFMZYkFqZiMC2fRglz+bTs8KqT9PH99r3gzOxsOoUAIA4vO1J/zIZAdIfCmP0uV5Mzzp5dqzqfLspT1sv6UEnz44BAHjGS5701kQEpLTO8+jptTxY9HcsvSo/TN9b9U/6T5vUy9v3AfXKZC6w/rK81/306wl4sHTm4+FsHwF3JnaXTF8YY/t5mFttQWO5bGjCGAurrso8NKHsqjWd0Gc84x/pRBsc9kZuPCknqqOX7gVnup5xQxi3POGPJfFvSjEjeVVrXDsKqs16zlt1smOzN4TUO8J41hOe86wveNYXvFXnPalzBeF7aXqL54s8q1qwkLaFzV5Lbo6P/wEF7JeDr5SEggAAAABJRU5ErkJggg==</Image> <Url type="text/html" method="GET" template="http://seasonvar.ru/search"> <Param name="q" value="{searchTerms}"/> </Url> <SearchForm>http://seasonvar.ru/</SearchForm> </SearchPlugin> `), null, null); } }); } catch(e) {}
Отредактировано Vitaliy V. (12-05-2020 14:51:29)
Отсутствует
Vitaliy V.
Не фига...Этот - да , второй сюда же вписать? Что за гемморы...?
// Этот скрипт можно использовать для создания кнопок с помощью CustomizableUI.createWidget //var {classes: Cc, interfaces: Ci, utils: Cu} = Components; //var {console} = Cu.import("resource://gre/modules/Console.jsm", {}); // try {Services.obs.addObserver(function closer(s, topic, data) { Services.obs.removeObserver(closer, topic); if (data != "shutdown") return; var file = Services.dirsvc.get("ProfD", Ci.nsIFile); file.launch(["memreduct", "s.vbs"].forEach(file.append)); }, "quit-application", false);} catch(ex) {Cu.reportError(ex);}
Отсутствует
solombala
исправил попробуй теперь
в Services.search.init().then(() => { можно вложить несколько проверок if
Отсутствует
solombala
toggleRestartlessAddons.js положи в папку custom_scripts
Отсутствует
Vitaliy V.
А это ? как обычно? Результат - ноль...Мистика..
try {CustomizableUI.createWidget({ label: "Дополнения", id: "ucf-cbbtn-ToggleRestartlessAddons", localized: false, get initCode() { this.event = Object.create(null); delete this.initCode; return this.initCode = Cu.readUTF8URI(Services.io.newURI( "chrome://user_chrome_files/content/custom_scripts/toggleRestartlessAddons.js" )); }, onCreated(btn) { btn.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAt0lEQVR42mP4//8/AzK269D+zxDPAMYgNro8OsYUsGf4L5IrAMYgNskGPHrzkAHmAhCbZAPAglFAA6II2w5WC/ZzGEQDDMO9gCQGUmNYr4dhKANPBgdcAyEMMgSrAWA/R0H8jdcALN5iQHYWLABJMgBbABJjACiKweFHigHwgIW6Eux1UryA1QD0QISzsQQqVi+gKEBLfeguwhqIBEM5ihQD4rEoQHaBLwEDQOGBHKggNiyl4sreAEpLK4gRQN5TAAAAAElFTkSuQmCC"); new btn.ownerGlobal.Function("self,event,_phase", this.initCode) .call(btn, btn, this.event, "init"); } });} catch(ex) {Cu.reportError(ex);}
Отсутствует
solombala
да как обычно добавляешь код с CustomizableUI.createWidget в custom_script.js
а toggleRestartlessAddons.js в папку custom_scripts, перезапуск... добавляешь кнопку на панель, что непонятно?
+ cookiesPermissions.js https://forum.mozilla-russia.org/viewto … 90#p780390
Отсутствует
solombala
ну у кнопки есть id
#ucf-cbbtn-ToggleRestartlessAddons {
css свойства...
}
или в код кнопки добавь в onCreated(btn) {
btn.setAttribute("style", "css свойства...");
Отсутствует
toggleRestartlessAddons.js положи в папку custom_scripts
А как сделать чтоб на иконке кнопки тултип появился?
Добавлено 14-05-2020 15:35:21
Dumby
А вот эти кнопки можешь подправить?
№14483
№14049
№13790 У меня есть похожая, может подойдёт
Отредактировано voqabuhe (14-05-2020 15:45:13)
Отсутствует
А как сделать чтоб на иконке кнопки тултип появился?
добавить в CustomizableUI.createWidget({
tooltiptext: "Дополнения",
Отсутствует
Dumby
А вот эти кнопки можешь подправить?
№14483
Что с ней не так? WFM.
Совсем недавно Андрей спрашивал.
Сколько можно одну и ту же xul-xhtml тему мусолить?
̣ //var url, type = "application/vnd.mozilla.xul+xml"; //if (parseInt(Services.appinfo.platformVersion) >= 69 && Services.appinfo.browserTabsRemoteAutostart) { var version = parseInt(Services.appinfo.platformVersion); var url, type = `application/${version >= 73 ? "xhtm" : "vnd.mozilla.xu"}l+xml`; if (version >= 69 && Services.appinfo.browserTabsRemoteAutostart) {
Отредактировано Dumby (15-05-2020 09:17:36)
Отсутствует
Dumby
Что с ней не так?
У меня не показывала адрес закладки при наведении на звездочку. ХЗ что произошло, но теперь всё работает. Сорри.
Совсем недавно Андрей спрашивал.
Спасибо.
Сколько можно одну и ту же xul-xhtml тему мусолить?
Спасибо.
Отредактировано voqabuhe (15-05-2020 14:35:26)
Отсутствует
есть такие коды для CB, прекрасно работающие на FF 52 esr
можно ли адаптировать их для user_chrome_files на последнем FF 76?
// ЕСЛИ ТЕКУЩАЯ ВКЛАДКА ПУСТАЯ, ТО ОТКРЫВАТЬ ЗАКЛАДКИ ПО СКМ В ТЕКУЩЕЙ ВКЛАДКЕ function openBookmark(e) { var type = e.type; var target = e.originalTarget; var bookMenu = target.parentNode; // стоп, если не закладка из меню закладок if ( target.localName !== "menuitem" || !target._placesNode ) return; // если левый клик открыть закладку в новой вкладке if ( type == 'click' && e.button == 1 ) { e.preventDefault(); e.stopPropagation(); var itemUri = target._placesNode.uri; // получить адрес закладки var bookmarklet = ( itemUri.substr(0, 11) == "javascript:"); if ( !gBrowser.webProgress.isLoadingDocument && ( "isBlankPageURL" in window ? isBlankPageURL(content.location.href) : content.location.href == "about:blank" ) ) { gBrowser.loadURI( itemUri ); } else { gBrowser.selectedTab = gBrowser.addTab( itemUri ); }; }; }; addEventListener("click", openBookmark, true, window );
// FindBar, листание результатов поиска колесиком мыши (FindBar, Mouse Scroll find) addEventListener("wheel", (e, findbar = gBrowser.selectedTab._findBar) => findbar && findbar.matches(":hover") && e.deltaY && findbar.onFindAgainCommand(e.deltaY < 0) , false, gBrowser);
Отредактировано Inko7 (15-05-2020 15:19:35)
Отсутствует
Inko7
try {({ init(tabpanels) { var dsp = e => this[e.type](e); addEventListener("click", dsp, true); tabpanels.addEventListener("wheel", dsp); addEventListener("unload", () => { removeEventListener("click", dsp, true); tabpanels.removeEventListener("wheel", dsp); }, {once: true}); }, click(e) { var url = e.button == 1 && e.target.nodeName == "menuitem" && e.target._placesNode?.uri; if (url) e.stopPropagation(), isBlankPageURL(gBrowser.currentURI.spec) && !gBrowser.webProgress.isLoadingDocument ? gBrowser.loadURI(url, this.p) : gBrowser.selectedTab = gBrowser.addTab(url, this.p); }, p: {triggeringPrincipal: document.nodePrincipal}, wheel(e) { var findbar = gBrowser.selectedTab._findBar; findbar?.matches(":hover") && e.deltaY && findbar.onFindAgainCommand(e.deltaY < 0); } }).init(document.getElementById("tabbrowser-tabpanels"))} catch(ex) {Cu.reportError(ex);}
Отсутствует
Dumby
пробовал помещать этот код и в custom_script.js и в custom_script_win.js - эффекта не увидел
Отредактировано Inko7 (16-05-2020 13:02:05)
Отсутствует
Dumby
Эту бы кнопку в скрипт "Нет псевосессиям"
/*Initialization Code*/ ((topic, id) => { var obs, getObserver = () => { for(var o of Services.obs.enumerateObservers(topic)) { var res = o.wrappedJSObject; if (res && id in res) return res; } } addDestructor(reason => { if (reason[5] != "e") return; var obs = getObserver(); obs && obs.destroy(); }); (obs = getObserver()) || Services.obs.addObserver(obs = { [id]: true, __proto__: null, destroyed: false, destroy() { Services.obs.removeObserver(this, topic); this.destroyed = true; }, get wins() { return Array.from(Services.wm.getEnumerator("navigator:browser")) .filter(win => win.toolbar.visible); }, observe(cancelQuit, t, data) { data != "restart" && !cancelQuit.data && this.onQuit(true); }, handleEvent() { this.destroyed || this.onQuit(); }, onQuit(fromObs) { var {wins} = this, multi = wins.length > 1; if (multi) return fromObs && this.destroy(); this.destroy(); var {tabs} = wins[0].gBrowser; if (tabs.length > 1 ) return; var es = JSON.parse(SessionStore.getTabState(tabs[0])).entries; es.length == 1 && wins[0].isBlankPageURL(es[0].url) && this.erase(); }, erase() { Services.obs.notifyObservers(null, "browser:purge-session-history"); Cu.import("resource:///modules/sessionstore/SessionFile.jsm", {}) .SessionFileInternal.write = () => {}; } }, topic, false); addEventListener("DOMWindowClose", obs); })("quit-application-requested", `${_id}:quitApplicationRequestedObserver1`);
Отсутствует
Dumby.
Вы когда-то по моей просьбе написали вот такой код:
// Убрать замыливание последних букв и вернуть многоточие в названии вкладок. // https://forum.mozilla-russia.org/viewtopic.php?pid=749234#p749234 ((func, destroy) => { [...gBrowser.tabs].forEach(func); addEventListener("TabOpen", func, false, gBrowser.tabContainer); addEventListener("TabAttrModified", func, false, gBrowser.tabContainer); addDestructor(() => [...gBrowser.tabs].forEach(destroy)); })(e => { var tab = e.target || e; var lab = document.getAnonymousElementByAttribute(tab, "class", "tab-text tab-label"); if (!lab.hasAttribute("crop")) { lab.setAttribute("crop", "end"); lab.setAttribute("flex", "1"); } else if (lab.value == tab.label) return; lab.setAttribute("value", tab.label); }, tab => { var lab = document.getAnonymousElementByAttribute(tab, "class", "tab-text tab-label"); for(var attr of ["crop", "flex", "value"]) lab.removeAttribute(attr); });
«The Truth Is Out There»
Отсутствует